如何从表单中删除jQueryvalidation?

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

我正在提交像JavaScript一样jQuery('form#listing').submit() ,所以我必须使用javascript来移除validation规则/函数。

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

触发DOM提交方法跳过validation:

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

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

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

你可能正在寻找的是validation插件也可以从提交事件中取消自己的分配:

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

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

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

真的很有用

你可以添加一个css类的cancel到一个元素(button,input),以便跳过validation

您也可以通过这种方式使用公共“规则”function:

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

这就是我正在使用;)

我发现没有其他方式有帮助,如果你想打开/closures你的表格validation(例如支付types的不同validation…)

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

设置您的validation:

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

禁用表单:

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

再次启用表单:

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

这现在似乎适用于我:

 var form = $('#my_form_id').get(0); $(form).removeData('validate'); 
 $("#formName").validate().settings.ignore = "*"; 

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

我最近升级到Jörn的validation脚本的1.5.5,removeValidator函数已被弃用。

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

对于表格的所有标签input:

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

这个对我有用。