我正在使用ASP.NET MVC,并且在我的捆绑包中有jQuery,jQuery验证,jQuery validate.config,jQuery验证不干扰,不干扰ajax和其他库。我的页面中有一个表单,并且其中包含一些字段。它有一个类型为button的按钮,当用户单击该按钮时,我试图做一些事情,然后做一个$(form).submit()
,我希望它被jQuery validate方法中的commithandler拦截,而不是提交它将对我的服务器进行ajax发布。我想使用jQuery.validate方法的原因是我在表单中有很多条件必填字段和其他验证。但是由于某种原因,jQuery验证根本没有执行/执行,并且表单正在提交而不是被提交处理程序拦截。我不知道为什么如果我正确地设置了一切,它为什么不起作用。这是我对jQuery validate方法的调用。我从来没有看到过警告说的很好。
$('form[name="submitCheckoutForm"]').validate({
debug: true,
rules: {
"Password": {
required: true
}
},
submitHandler: function (form) {
//actions.SubmitCheckout();
alert('is good');
return false;
}
});
最佳答案
如果您使用的是Unobtrusive Validation插件,那么您也不能调用jQuery Validate的.validate()
方法。
为什么?
Unobtrusive Validation插件会根据表单中的各种数据属性自动构造.validate()
方法。
jQuery Validate插件不允许在同一表单上多次调用.validate()
方法。因此,由于您已经在使用Unobtrusive Validation构造.validate()
,因此对.validate()
的其他调用将被完全忽略。