Javascript 即使我在字段中检测到错误,表单也会发布

Javascript 即使我在字段中检测到错误,表单也会发布,javascript,html,form-post,Javascript,Html,Form Post,在提交表单之前,我使用javascript验证表单。当我在字段上检测到错误时,表单仍会发布。如何防止出现错误时提交 这是我的表格: <form onSubmit="return validateForm()" action="send.php" method="post" name="formulaire"> Prénom: <input type="text" name="prenom"><p id="valider_prenom">

在提交表单之前,我使用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>

名称:


名称:


电子邮件:


邮政编码:


下面是我的javascript函数: 函数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=假; //电子邮件格式验证 var atpos=email.indexOf(“@”); var dotpos=email.lastIndexOf(“.”); 如果(prenom==null | | prenom==“”) { document.getElementById('valider_prenom')。innerHTML='*requires'; 错误=正确; } if(nom==null | | nom==“”) { document.getElementById('valider_nom')。innerHTML='*requires'; 错误=正确; } 如果(email==null | | email==“”) { document.getElementById('valider_email')。innerHTML='*requires'; 错误=正确; } else if(atpos<1 | | dotpos=email.length) { document.getElementById('valider_email')。innerHTML='*地址不正确'; 错误=正确; } 如果(codepostal==null | | codepostal==“”) { document.getElementById('valider_codepotal')。innerHTML='*requires'; 错误=正确; } if(erreur){return false;} }


如果将代码的最后一行替换为If(erreur==true){return false;}
它将验证您的表单。

亲爱的Charley14,另一件事是您的代码工作正常。但是在validateForm()中,id“valider_codepotal”应该是“valider_codepostal”。我已经执行了你的代码。请从浏览器中清除缓存并重试。如果有任何问题,请告诉我。