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

时间:2008-12-12 16:28:02

标签: javascript jquery validation

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

我使用jQuery('form#listing').submit()之类的javascript提交表单,因此我必须使用javascript删除验证规则/函数。

问题在于我无法弄清楚如何做到这一点。我尝试了jQuery('form#listing').validate({});jQuery('form#listing').validate = null之类的内容,但没有运气。

10 个答案:

答案 0 :(得分:68)

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

$("#listing")[0].submit();

答案 1 :(得分:34)

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

jQuery('form#listing').unbind('submit'); // remove all submit handlers of the form

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

jQuery('form#listing').validate({
   onsubmit : false
});

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

jQuery('form#listing').unbind('submit').submit();

答案 2 :(得分:19)

var form = $('#my_form_id').get(0);
$.removeData(form,'validator');

真的有效。

答案 3 :(得分:7)

你可以在一个元素(按钮,输入)中添加一个取消的css类,以便它跳过验证

答案 4 :(得分:7)

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

$('input, select, textarea').each(function() {
    $(this).rules('remove');
});

这就是我正在使用的;)

答案 5 :(得分:6)

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

我必须做的事情(这不是一个很好的修复,但确实有效)

设置验证:

jQuery('#form').validate();

禁用表单:

jQuery('#form').validate().currentForm = '';

再次启用表单:

jQuery('#form').validate().currentForm = jQuery('#form')[0];

答案 6 :(得分:5)

这似乎对我有用:

var form = $('#my_form_id').get(0);
$(form).removeData('validate');

答案 7 :(得分:3)

$("#formName").validate().settings.ignore = "*";

参考:https://github.com/jzaefferer/jquery-validation/issues/725

答案 8 :(得分:2)

我最近升级到了Jörn验证器脚本的1.5.5,并且不推荐使用removeValidator函数。


...
jQuery.extend(
          jQuery.fn, 
          {
          removeValidator: function(){
              this.unbind();
              jQuery.removeData(this[0], 'validator'); 
          }
...

答案 9 :(得分:1)

对于表格输入的所有标签:

$('#myform').validate().settings.ignore = '.valid';
$('input').addClass('valid');

它对我有用。