禁用后重新启用 jQuery 验证

Re-enable jQuery validation after disabled

我有一个 MVC 项目,我在其中使用带有 jquery.validate.js 和 jquery.validate.unobtrusive.js 的数据注释的内置验证。这一切正常,我的表格将通过验证。

在一个表单上,我有一个 post 代码查找按钮,因此我通过向按钮添加 formnovalidate 属性来使用建议来禁用对此按钮的验证。这也很好用,并允许我提交表单以使用 ajax.

进行我的 post 代码查找

单击此按钮后,我可以单击主提交按钮,它将 post 表单不进行任何验证。

我查看了 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; 绑定到按钮点击 - 像这样的东西(因为我没有 validator 对象所以不会工作):

$('#submit').on('click', function() {
    validator.cancelSubmit = false;
});

我试过使用 $.validator.cancelSubmit = false; 但这没有用

您可以使用 data() 访问 validator 对象:

$(yourForm).data('validator').cancelSubmit = false;