验证表单提供错误消息,但仍会提交表单

时间:2016-06-09 19:59:25

标签: jquery forms validation

我的表单验证无法正常运行。我没有任何价值,它会给我留言#34;这个字段是必需的"但它仍然会将它添加到我的列表中。

即使我尝试输入一个不是电子邮件的值,它也会给我正确的信息,它只会阻止我将它放入我的列表中,但当我再次按下按钮并使用相同的错误值时仍会将其添加到我的列表中。

enter image description here

这是我的清单: enter image description here

这是我的代码,包含表单和验证:

  <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Cohorts</title>


 </head>
  <body>

 <form id="register-form" class="form-horizontal" name="form" ng-submit="addCohort()">

<div class="form-group">

    <label class="control-label col-xs-3">Name:</label>

<input id="email" name="email" placeholder="Email Address" type="text" ng-model="formCohort.firstname">

<input class = "btn-btn-primary" id="submit-button"  type="submit"   value="Sigin up">
    </div>

    <script>
$("#register-form").submit(function(e) {
    e.preventDefault();

}).validate({
      rules:{
        email:{
          required: true,
          email: true
        }
      }
    });
    console.log("validation functie");

  </script>

  </form>
  </body>
   </html>

我做错了什么,为什么我的e.preventdefault不起作用?

1 个答案:

答案 0 :(得分:0)

您在 validation()方法中错过 submitHandler 。在 submitHandler 检查成功与否取得成功时,请转到return false;

以示例形式 name =&#34; form&#34;

$("form[name='forn']").validate({

    rules: {
        name: {
            required: true,
            minlength: 3
        }
    },messages: {
        name: {
            required: "Please provide a name",
            minlength: "Your Category must be at least 3 characters long"
        },
        email: "Please enter a valid email address"
    },

    submitHandler: function(form) {

       //Check hear

    }
});