Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870

    Controllo inserimento caratteri speciali in textarea

    Ciao.

    Devo controllare che la input type="text" DataT1 e la texarea TextareaS1 non siano lasciate vuote ed anche che nella textarea del mio form non si inseriscano caratteri speciali diversi dal punto, punto e virgola, virgola e spazio.

    Ho scritto questa funzione di controllo.

    Non capisco dove sbaglio perchè la validazione non viene eseguita correttamente.

    Un aiuto per favore.

    codice:
    function CheckmyForm() {
       
       var re1 = new RegExp("^[a-zA-Z0-9\.;, ]{2,100}$");
       
       if ( myform.DataT1.value.length > 0 && myform.TextareaS1.value.length > 0 ) {
            alert("La compilazione è conforme.");        
            
        } else     {
        
            if (myform.S1.value.match(re1)) {          
            alert('Caratteri non ammessi!');          
            myform.TextareaS1.focus();                         
            }
        
        
            alert("Dati obbligatori."); 
            myform.DataT1.focus(); 
            
    
        }
      
    }

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998

    Re: Controllo inserimento caratteri speciali in textarea

    Originariamente inviato da fraude
    Ciao.

    Devo controllare che la input type="text" DataT1 e la texarea TextareaS1 non siano lasciate vuote ed anche che nella textarea del mio form non si inseriscano caratteri speciali diversi dal punto, punto e virgola, virgola e spazio.

    Ho scritto questa funzione di controllo.

    Non capisco dove sbaglio perchè la validazione non viene eseguita correttamente.

    Un aiuto per favore.

    codice:
    function CheckmyForm() {
       
       var re1 = new RegExp("^[a-zA-Z0-9\.;, ]{2,100}$");
       
       if ( myform.DataT1.value.length > 0 && myform.TextareaS1.value.length > 0 ) {
            alert("La compilazione è conforme.");        
            
        } else     {
        
            if (myform.S1.value.match(re1)) {          
            alert('Caratteri non ammessi!');          
            myform.TextareaS1.focus();                         
            }
        
        
            alert("Dati obbligatori."); 
            myform.DataT1.focus(); 
            
    
        }
      
    }
    Gia' il primo passo ti frega... basta mettere un carattere qualunque nei due campi ed il controllo e' superato...

    Rivedi il flusso e l'ordine dei controllo, poi magari passiamo alla regexpr
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870

    Re: Re: Controllo inserimento caratteri speciali in textarea

    Grazie.

    Per me così funziona a dovere almeno se non mi sfugge qualcosa.
    Infatti se i due campi del form `DataT1` e `TextareaS1` sono entrambi vuoti o almeno uno è vuoto, la compilazione non viene validata.

    Il successivo controllo dovrebbe essere solo sulla textarea secondo la regExp.

    Forse non ti seguo nel ragionamento?

    codice:
    function CheckmyForm() {
         
       if ( myform.DataT1.value.length > 0 && myform.TextareaS1.value.length > 0 ) {
            alert("La compilazione è conforme.");        
            
        } else     {  
        
            alert("Dati obbligatori."); 
            myform.DataT1.focus(); 
            
        }
      
    }

  4. #4
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Così funziona... è corretta?

    1) I campi `DatesT1` e `TextareaS1` del form non possono essere lasciati vuoti;
    2) Nella textarea `TextareaS1` oltre a numeri e lettere, possono essere inseriti soltanto i simboli virgola, spazio, punt, punto e virgola. Minimo 1 carattere massimo 100 caratteri.

    Che ve ne pare ?

    codice:
    function CheckmyForm() {
       
    	  
       if ( myform.DatesT1.value.length <= 0 ) { 
    		alert("KO 1."); 
    		myform.DatesT1.focus();		   
    		   
    	}	
    
       if ( !myform.TextareaS1.value.match("^[a-zA-Z0-9\.;, ]{1,100}$") ) {
    		
    		alert("KO 2."); 
    		myform.TextareaS1.focus();		   
    		   
    	}	 
    	 
    	else {   
     
    		alert("ok.");		
    			 
    	}
      
    }

  5. #5
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    No, non funziona...

    Se compilo prima la `TextareaS1` e provo ad inviare il form, la funzione mi avvisa che mancano i dati nella `DatesT1` e comunque fa partire il form stesso...


  6. #6
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    codice:
    <form ... onsubmit="return CheckmyForm()">
    
    function CheckmyForm() {
       if ( myform.DatesT1.value.length <= 0 ) { 
    		alert("KO 1."); 
    		myform.DatesT1.focus();	
    		return false;	   
    	}	
       if ( !myform.TextareaS1.value.match("^[a-zA-Z0-9\.;, ]{1,100}$") ) {
    		alert("KO 2."); 
    		myform.TextareaS1.focus();		   
    		return false;	     
    	} else {   
    		alert("ok.");		
    	}
    }
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  7. #7
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Grazie, adesso mi stampa false sul browser...

    Ho risolto così:

    codice:
    function CheckmyForm() {
       if ( myform.DatesT1.value.length <= 0 ) { 
    		alert("KO 1."); 
    		myform.DatesT1.focus();
                               return; 	
    			   
    	}	
       if ( !myform.TextareaS1.value.match("^[a-zA-Z0-9\.;, ]{1,100}$") ) {
    		alert("KO 2."); 
    		myform.TextareaS1.focus();		   
                               return;      
    	} else {   
    		alert("ok.");		
    	}
    }

  8. #8
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Originariamente inviato da fraude
    Grazie, adesso mi stampa false sul browser...

    Ho risolto così:

    return;


    Ma com'e' fatto il tuo form? nel senso del solo tag:

    <form ... onsubmit="return CheckmyForm()">
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  9. #9
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    E' una funzione, richiamata nel body onLoad:

    codice:
    <script language="JavaScript">
    
    function invio()
    
    { 
    document.form.submit()
    } 
    
    </script>
    
    ....
    <body onLoad="invio()">
    Ricopio l'ultima versione ottimizzata e funzionante:
    codice:
    function CheckmyForm() {
    
    for ( var n = 0; n < myform.elements.length; n++ ) {
          var field = myform.elements[n];
    
          if (field.value.length <= 0) {
              window.alert('Compilazione non conforme!');
              field.focus();
              field.select();   
              return;            
            }
        }
    
          if (!myform.TextareaS1.value.match("^[a-zA-Z0-9\.;,:'? ]{1,100}$")) {
              window.alert("Errore nella textarea!");
              myform.TextareaS1.focus();
              myform.TextareaS1.select();
              return;
        }
                                  
          else {   
    
              alert("OK."); 
              invio();
    
        }  
       
            
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.