如何从表单中删除jQuery验证?

Ben*_*use 39 javascript validation jquery

我正在使用jQuery验证插件来验证表单,如果单击某个链接,我想删除验证并提交表单.

我用javascript提交表单jQuery('form#listing').submit(),所以我必须用javascript 删除验证规则/功能.

问题是我无法弄清楚如何做到这一点.我已经试过之类的东西jQuery('form#listing').validate({});jQuery('form#listing').validate = null,但没有运气.

Jör*_*rer 68

触发DOM提交方法以跳过验证:

$("#listing")[0].submit();
Run Code Online (Sandbox Code Playgroud)

  • 实际上,这是一个很好的提示,但它没有回答这个问题. (8认同)

Bor*_*gar 34

您可以使用unbind删除节点事件:

jQuery('form#listing').unbind('submit'); // remove all submit handlers of the form
Run Code Online (Sandbox Code Playgroud)

您可能正在寻找的是验证插件也可以从提交事件中取消分配:

jQuery('form#listing').validate({
   onsubmit : false
});
Run Code Online (Sandbox Code Playgroud)

对于这两种情况,您应该能够跟进调用.submit()以提交表单:

jQuery('form#listing').unbind('submit').submit();
Run Code Online (Sandbox Code Playgroud)

  • 只有unbind方法适合我.使用jQuery 1.3.2和Validate 1.5.5 (3认同)

小智 20

var form = $('#my_form_id').get(0);
$.removeData(form,'validator');
Run Code Online (Sandbox Code Playgroud)

真的很有效.

  • 在对此进行黑客攻击之后,上面需要$(form).removeData('validator'); (9认同)

red*_*are 7

您可以向元素(按钮,输入)添加取消的css类,以便跳过验证


Chr*_*ens 7

您也可以这样使用公共"规则"功能:

$('input, select, textarea').each(function() {
    $(this).rules('remove');
});
Run Code Online (Sandbox Code Playgroud)

这就是我正在使用的;)


小智 6

如果您想要打开/关闭表单验证(例如,对付款类型的不同验证......),我发现没有其他方法有用.

我必须做的事情(这不是一个很好的解决方案,但确实有效)

设置验证:

jQuery('#form').validate();
Run Code Online (Sandbox Code Playgroud)

禁用表单:

jQuery('#form').validate().currentForm = '';
Run Code Online (Sandbox Code Playgroud)

再次启用表单:

jQuery('#form').validate().currentForm = jQuery('#form')[0];
Run Code Online (Sandbox Code Playgroud)


ken*_*ech 5

这似乎对我有用:

var form = $('#my_form_id').get(0);
$(form).removeData('validate');
Run Code Online (Sandbox Code Playgroud)