我有一个 MVC 项目,其中使用 jquery.validate.js 和 jquery.validate.unobtrusive.js 的数据注释来使用内置验证。这一切工作正常,我的表单将验证。
在一个表单上,我有一个邮政编码查找按钮,因此我通过向按钮添加 formnovalidate
属性来使用建议,从而禁用了对此按钮的验证。这也很有效,允许我提交表单以使用 ajax 进行邮政编码查找。
单击此按钮后,我可以单击主提交按钮,它将发布表单而不进行任何验证。
我查看了 jquery.validate.js 文件,发现使用以下代码取消了验证:
// allow suppressing validation by adding the html5 formnovalidate attribute to the submit button
if ( $(event.target).attr("formnovalidate") !== undefined ) {
validator.cancelSubmit = true;
}
然后我可以通过添加以下内容来重新启用它:
if ( event.target.id == 'submit' ) {
validator.cancelSubmit = false;
}
但是我不想更改源文件,就像我使用 nuget 进行更新一样,我可能会忘记我已经更改了该文件并忘记将该行放回原处。
我如何将 validator.cancelSubmit = false;
绑定(bind)到按钮点击 - 像这样的东西(这不会工作,因为我没有 validator
对象):
$('#submit').on('click', function() {
validator.cancelSubmit = false;
});
我尝试过使用 $.validator.cancelSubmit = false;
但这不起作用
最佳答案
您可以使用data()
访问validator
对象:
$(yourForm).data('validator').cancelSubmit = false;
关于jquery - 禁用后重新启用 jQuery 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30910032/