Visualizzazione risultati 1 fino 4 di 4

Discussione: Perché Javascript non mi valida questo form?

  1. #1
    gianlucaweb non è connesso Utente attivo
    Data registrazione
    01-01-2003
    Messaggi
    470

    Predefinito Perché Javascript non mi valida questo form?

    Ciao,
    dopo tanto tempo ho pensato di riprendere a costruire semplici pagine web, ma ho dimenticato un po' tutto quindi all'inizio provo a modificare dei file che trovo in rete.
    Non riesco a capire perché il codice javascript non mi valida il contenuto del form (in cui di proposito inserisco dati errati) e passa subito ad inviare i dati allo script PHP addcustomer.php.

    Questo il codice del file validatesignup.php con il modulo per la registrazione:


    Codice HTML:
    <html>
    <head>
    <script language="JavaScript" type="text/JavaScript" src="checkform.js"></script>
    </head>
    <body>
      	<form action="addcustomer.php" method="post" onsubmit="return validate(this);">
    		<table border="0" cellspacing="1" cellpadding="3">
    			<tr><td colspan="2" align="center">Enter your information</td></tr>
      			<tr><td>Email Address: </td><td> <input size="20" type="text" name="emailaddress" > <span id="emailmsg"></span></td></tr>
      			<tr><td>Password: </td><td>  <input size="20" type="password" name="password" ><span id="passwdmsg"></span></td></tr>
      			<tr><td>ReType Password:  </td><td> <input size="20" type="password" name="repassword"><span id="repasswdmsg"></span></td></tr>
      			<tr><td>Complete Name  </td><td> <input size="50" type="text" name="complete_name" ><span id="usrmsg"></span></td></tr>
       			<tr><td>Address:  </td><td> <input size="80" type="text" name="address1"></td></tr>
      			<tr><td></td><td> <input size="80" type="text" name="address2"></td></tr>
      			<tr><td>City:  </td><td> <input size="30" type="text" name="city"></td></tr>
      			<tr><td>State:  </td><td> <input size="30" type="text" name="state"></td></tr>
     			<tr><td>Country:  </td><td> <input size="30" type="text" name="country"></td></tr>
      			<tr><td>Zip Code:  </td><td> <input size="20" type="text" name="zipcode"></td></tr>
        			<tr><td>Phone No:  </td><td> <input size="30" type="text" name="phone_no"></td></tr>
      			<tr><td><input type="submit" name="submit" value="Submit"> </td><td> 
        			<input type="reset" value="Cancel"></td></tr>
    		</table>
      	</form>
    </body>
    </html>
    



    questo il file javascript checkform.js richiamato per il controllo:


    Codice:
    function validate(userForm) {
    	div=document.getElementById("emailmsg");
    	div.style.color="red";
    	if(div.hasChildNodes())
    	{
    		div.removeChild(div.firstChild);
    	}
    	regex=/(^\w+\@\w+\.\w+)/;
    	match=regex.exec(userForm.emailaddress.value);
    	if(!match)
    	{
    		div.appendChild(document.createTextNode("Invalid Email"));
    		userForm.emailaddress.focus();
    		return false;
    	}
    	div=document.getElementById("passwdmsg");
    	div.style.color="red";
    	if(div.hasChildNodes())
    	{
    		div.removeChild(div.firstChild);
    	}
    	if(userForm.password.value.length <=5)
    	{
    		div.appendChild(document.createTextNode("The password should be of at least size 6"));
    		userForm.password.focus();
    		return false;
    	}
    	div=document.getElementById("repasswdmsg");
    	div.style.color="red";
    	if(div.hasChildNodes())
    	{
    		div.removeChild(div.firstChild);
    	}
    	if(userForm.password.value != userForm.repassword.value)
    	{
    		div.appendChild(document.createTextNode("The two passwords don't match"));
    		userForm.password.focus();
    		return false;
    	}
     	var div=document.getElementById("usrmsg");
    	div.style.color="red";
    	if(div.hasChildNodes())
    	{
    		div.removeChild(div.firstChild);
    	}
    	if(userForm.complete_name.value.length ==0)
    	{
    		div.appendChild(document.createTextNode("Name cannot be blank"));
    		userForm.complete_name.focus();
    		return false;
    	}
    	return true;
    }

    In pratica è come se il codice JS non esistesse. Potete aiutarmi a capire cosa non va?
    Grazie
    Ultima modifica di gianlucaweb : 28-08-2017 alle ore 11.43.42

  2. #2
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    Manca il blocco della richiesta, cioè viene sempre e cmq. inviata al server senza tale blocco... Uhm potresti pensare ad un uso tipo jquery.. Ciao
    https://stackoverflow.com/questions/...orm-submission
    Ultima modifica di darbula : 29-08-2017 alle ore 15.31.29

  3. #3
    gianlucaweb non è connesso Utente attivo
    Data registrazione
    01-01-2003
    Messaggi
    470

    Predefinito

    Citazione Originalmente inviato da darbula Visualizza messaggio
    Manca il blocco della richiesta, cioè viene sempre e cmq. inviata al server senza tale blocco... Uhm potresti pensare ad un uso tipo jquery.. Ciao
    https://stackoverflow.com/questions/...orm-submission
    Qual è il blocco della richiesta?
    Grazie

  4. #4
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    Il blocco della richiesta è riferito all'invio del modulo (che altro non è che una richiesta con l'invio dei dati) ... Invece di far ritornare false dalla funzione... event.preventDefault(); cercala su internet.
    Tra l'atro il link che ti ho postato si riferisce ad una funzione che ritorna false e valuta anche event.preventDefault
    Cmq.. Posso dirti che la funzione fa il suo compito con la mostra dell'errore... Cioè si ferma al primo false se tu devi controllare che ci sia una o più occorrenza falsa. Allora il false dovrà essere unico vedi un po tu come fai ad esempio crei una variabile di tipo var a=1; se la condizione è falsa e alla fine di tutto controlli se questa variabile è uguale a uno o no usi il return false/true di conseguenza..
    Ultima modifica di darbula : 31-08-2017 alle ore 14.00.24

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •