javascript - 即使我检测到字段中有错误,也会形成帖子

标签 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"></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>

最佳答案

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

关于javascript - 即使我检测到字段中有错误,也会形成帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16876348/

相关文章:

javascript - 如何在jsp中从多选项卡单一表单打印PDF

javascript - 列类内的 Bootstrap 面板超出该类

javascript - child UL 对父亲 LI 动画的奇怪行为

javascript - Webkit <button onclick> 在某些情况下不会触发

html - 获取动态图像django/wagtail的图像源

java - Ext-GWT 高级表格

asp.net-mvc - asp.net mvc 3 - 表单发布 - ERR_CONNECTION_RESET

javascript - 检查 angularjs 中未保存的表单数据(使用 ui-router 的多个表单)

javascript - 如何将变量与Jquery结合起来?