JQuery验证表单但不是`submit`按钮

时间:2016-12-13 14:34:54

标签: javascript jquery html twitter-bootstrap validation

我使用JQuery.Validation plugin验证表单中的某些字段,但我不想使用submit按钮,我只想使用{{1并且一旦使用<input type="button">点击我想要调用我的控制器,唯一的问题是它不是JQuery按钮,所以即使字段错误或未经过验证,它也会调用控制器,即使字段值是错误的,因为我在单击该按钮时使用submit事件.click(),我希望当我在字段上有错误的值并且验证是显示错误消息,即使单击该按钮也不会调用我的动作控制器,我该如何达到此目的? 这是我的JQuery代码:

html

这是<script src="~/js/jquery.validate.js"></script> <form action="post" class="rightform newsletter" id="formSubscription"> <div class="title"> <img src="http://ligresources.blob.core.windows.net/public/UK/Content/Images/newsletter.png" alt="">NEWSLETTER </div> <input type="text" id="txtFullName" name="fullName" placeholder="Full name" required> <input type="email" id="txtEmail" name="email" placeholder="Email address" required> <button type="button" id="btnSubscription" data-url="@Url.Action("SubscriptionEmail","Email")" style="background-color:#f66804;">SUBSCRIBE TO NEWSLETTER</button> </form> 代码:

JQuery.Validation plugin

$(document).ready(function () { $("#formSubscription").validate({ rules: { email: { required:true, email:true }, fullName: { required:true } }, messages: { email: { required: "Please enter an email address", email: "Please enter a valid email address" } } }); }); btnSubscription时,这是我暂时抛出的JQuery函数:

clicked

3 个答案:

答案 0 :(得分:3)

设置.validate()后,您需要调用.valid()处理程序中的.click()方法。这是提交自动执行的操作,但您可以使用.valid()方法手动调用它。

答案 1 :(得分:1)

你应该使用类型submit,然后你可以使用submitHandler来管理你想要做的其他事情,例如:

$("#formSubscription").validate({
  submitHandler: function(form) {
    // do other things for a valid form
    form.submit();
  }
});

在文档中获取战利品:https://jqueryvalidation.org/validate/

答案 2 :(得分:0)

在SendSubscription函数中添加一个if:

if (yourValidationDidntPass) {
  //do whatever you want
}
else {
  $.ajax({...});
}