2012-06-01 3 views
1

Je faisais le test pour la première fois. J'ai lu le code this et j'en ai créé un moi-même. Le truc c'est que ça ne donne pas d'erreur même si les champs sont vides.Validation de plusieurs champs dans un formulaire

Voici mon fiddle.

Veuillez nous aider. Merci.

<!DOCTYPE html> 
<html> 
<head> 
<script type="text/javascript"> 
{function validateForm() 

var x=document.forms["myForm"]["name"].value; 
if (x==null || x=="") 
    { 
    alert("Name must be filled out"); 
    return false; 
    } 

var y=document.forms["myForm"]["password"].value; 
    { 
if (y==null || y=="") 
    alert("Password name must be filled out"); 
    return false; 
    } 
</script> 
</head> 

<body> 

<form name="myForm" action="demo_form.asp" onsubmit="return validateForm()" method="post"> 
Name*: <input type="text" name="name"> <br> 
Password*: <input type="password" name="password"><br> 
Email: <input type="text" name="email"><br> 
<input type="submit" value="Submit"> 
</form> 
</body> 

</html> 

Répondre

4

Votre corset doit être fonction après valideFormulaire() et après le cas, et à la fin de la fonction. Globalement, les accolades sont vissées dans cet exemple. Déposez votre code de manière à ce que les supports d'ouverture et de fermeture correspondent et aient un sens pour vous.

6

Code fixe: jsfiddle

<!DOCTYPE html> 
<html> 
<head> 
<script type="text/javascript"> 
function validateForm() { 

var x=document.forms["myForm"]["name"].value; 
if (x==null || x=="") 
{ 
    alert("Name must be filled out"); 
    return false; 
} 

var y=document.forms["myForm"]["password"].value; 
if (y==null || y=="") { 
    alert("Password name must be filled out"); 
    return false; 
} 
} 
</script> 
</head> 

<body> 

<form name="myForm" action="demo_form.asp" onsubmit="return validateForm()" method="post"> 
Name*: <input type="text" name="name"> <br> 
Password*: <input type="password" name="password"><br> 
Email: <input type="text" name="email"><br> 
<input type="submit" value="Submit"> 
</form> 
</body> 
<html> 

Il faut faire attention où vous placez vos accolades. De plus, il est avantageux d'utiliser la console sur votre navigateur pour identifier certaines erreurs et les corriger.

4

Vous avez manqué quelques accolades {} et on était au mauvais endroit.

espère que cela fonctionne:

function validateForm() { 
var x=document.forms["myForm"]["name"].value; 

if (x==null || x=="") 
    { 
    alert("Name must be filled out"); 
    return false; 
    } 

var y=document.forms["myForm"]["password"].value; 
    { 
if (y==null || y=="") 
    alert("Password name must be filled out"); 
    return false; 
} 
} 
0

Je l'ai trouvé sur Internet après une longue période de recherche .. Mais cela fonctionne tout simplement parfait ..

Le code html

<html> 
<head> 
<title>Form Validation</title> 
<script type="text/javascript"> 
<!-- 
// Form validation code will come here. 
//--> 
</script> 
</head> 
<body> 
<form action="/cgi-bin/test.cgi" name="myForm" 
      onsubmit="return(validate());"> 
<table cellspacing="2" cellpadding="2" border="1"> 
<tr> 
    <td align="right">Name</td> 
    <td><input type="text" name="Name" /></td> 
</tr> 
<tr> 
    <td align="right">EMail</td> 
    <td><input type="text" name="EMail" /></td> 
</tr> 
<tr> 
    <td align="right">Zip Code</td> 
    <td><input type="text" name="Zip" /></td> 
</tr> 
<tr> 
<td align="right">Country</td> 
<td> 
<select name="Country"> 
    <option value="-1" selected>[choose yours]</option> 
    <option value="1">USA</option> 
    <option value="2">UK</option> 
    <option value="3">INDIA</option> 
</select> 
</td> 
</tr> 
<tr> 
    <td align="right"></td> 
    <td><input type="submit" value="Submit" /></td> 
</tr> 
</table> 
</form> 
</body> 
</html> 

le javascript

<script type="text/javascript"> 
<!-- 
// Form validation code will come here. 
function validate() 
{ 

    if(document.myForm.Name.value == "") 
    { 
    alert("Please provide your name!"); 
    document.myForm.Name.focus() ; 
    return false; 
    } 
    if(document.myForm.EMail.value == "") 
    { 
    alert("Please provide your Email!"); 
    document.myForm.EMail.focus() ; 
    return false; 
    } 
    if(document.myForm.Zip.value == "" || 
      isNaN(document.myForm.Zip.value) || 
      document.myForm.Zip.value.length != 5) 
    { 
    alert("Please provide a zip in the format #####."); 
    document.myForm.Zip.focus() ; 
    return false; 
    } 
    if(document.myForm.Country.value == "-1") 
    { 
    alert("Please provide your country!"); 
    return false; 
    } 
    return(true); 
} 
//--> 
</script> 

et la fonction de validation email

<script type="text/javascript"> 
<!-- 
function validateEmail() 
{ 

    var emailID = document.myForm.EMail.value; 
    atpos = emailID.indexOf("@"); 
    dotpos = emailID.lastIndexOf("."); 
    if (atpos < 1 || (dotpos - atpos < 2)) 
    { 
     alert("Please enter correct email ID") 
     document.myForm.EMail.focus() ; 
     return false; 
    } 
    return(true); 
} 
//--> 
</script> 

vous pouvez vérifier en ligne here

1

Vous avez égaré les accolades { } pour la validation du mot de passe. Placez-les après la clause if.

Questions connexes