如何从表单中删除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');
这个对我有用。