我正在使用 ASP.NET MVC,我的 bundle 中有 jQuery、jQuery validate、jQuery validate.config、jQuery validate unobtrusive、unobtrusive ajax 和其他库。我的页面中有一个表单,里面有一些字段。它有一个按钮类型的按钮,当用户单击该按钮时,我正在尝试做一些事情,然后执行 $(form).submit()
,我希望它被拦截jQuery 验证方法中的提交处理程序,而不是提交表单,它将向我的服务器发送一个 ajax 帖子。我想使用 jQuery.validate 方法的原因是我在表单中有很多条件必填字段和其他验证。但是由于某种原因,jQuery 验证根本没有执行/触发,并且正在提交表单而不是被提交处理程序拦截。如果我正确设置了所有内容,我不知道为什么它不起作用。这是我对 jQuery 验证方法的调用。我从来没有看到警告说是好的。
$('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()
方法。因此,由于您已经在使用非侵入式验证来构造.validate()
,因此您对.validate()
的其他调用将被完全忽略。
关于使用非侵入式验证时 jQuery 验证未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50855644/