2013-06-01 51 views
0

我使用javascript來驗證提交之前的表單。當我在字段上檢測到錯誤時,表單仍然發佈。如何防止錯誤提交?即使當我在一個字段中檢測到錯誤時,表單帖子

這裏是我的形式:

<form onSubmit="return validateForm()" action="send.php" method="post" name="formulaire"> 
     Prénom: <input type="text" name="prenom"><p id="valider_prenom"></p><br> 
     Nom: <input type="text" name="nom"><p id="valider_nom"></p><br> 
     Email: <input type="text" name="email"><p id="valider_email"></p><br> 
     Code postal: <input type="text" name="codepostal"><p id="valider_codepostal"></p><br> 
     <INPUT type="submit" value="Envoyer"> 
    </form> 

Here's my javascript function: 

<script type="text/javascript"> 
    function validateForm() 
    { 
     var prenom = document.forms["formulaire"]["prenom"].value; 
     var nom = document.forms["formulaire"]["nom"].value; 
     var email = document.forms["formulaire"]["email"].value; 
     var codepostal = document.forms["formulaire"]["codepostal"].value; 
     var erreur = false; 

     // Pour la validation du format de email 
     var atpos = email.indexOf("@"); 
     var dotpos = email.lastIndexOf("."); 

     if (prenom == null || prenom == "") 
     { 
     document.getElementById('valider_prenom').innerHTML = '* Requis'; 
     erreur = true; 
     } 

     if (nom == null || nom == "") 
     { 
     document.getElementById('valider_nom').innerHTML = '* Requis'; 
     erreur = true; 
     } 

     if (email == null || email == "") 
     { 
     document.getElementById('valider_email').innerHTML = '* Requis'; 
     erreur = true; 
     } 
     else if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= email.length) 
     { 
     document.getElementById('valider_email').innerHTML = '* Adresse incorrect'; 
     erreur = true; 
     } 

     if (codepostal == null || codepostal == "") 
     { 
     document.getElementById('valider_codepotal').innerHTML = '* Requis'; 
     erreur = true; 
     } 

     if (erreur){return false;} 
    } 
    </script> 

回答

2

如果更換你的代碼與IF(ERREUR ==真)的最後一行{返回false;} 將驗證您的形式。

+2

親愛的Charley14,另一件事是你的代碼工作正常。但是在validateForm()中,id「valider_codepotal」應該是「valider_codepostal」。我已經執行你的代碼的工作。請從瀏覽器清除緩存並嘗試。如果有任何問題讓我知道。 – John

相關問題