jquery - 禁用后重新启用 jQuery 验证

标签 jquery jquery-validate unobtrusive-validation

我有一个 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/

相关文章:

jquery - Jquery Validate 可以被绕过吗?

jquery - ASP.NET、MVC4、Unobtrusive Validation - 将错误摘要显示为 Bootstrap Accordion 中的覆盖层

asp.net-mvc-3 - 是什么触发了 asp.net MVC 3 中的不显眼验证检查

javascript - 在 jQuery 淡入中使用 'this' 变量?

javascript - Express:jQuery 验证不起作用

jQuery "Validation is not a function"

asp.net-mvc-3 - 页面加载时的验证触发

javascript - 使用 setInterval 函数定位 div

jquery - BackboneJS 中的路由器实例不同

javascript - n 秒后或单击按钮时自动关闭 div