我正在使用jQuery验证插件来验证表单,如果单击某个链接,我想删除验证并提交表单.
我用javascript提交表单jQuery('form#listing').submit()
,所以我必须用javascript 删除验证规则/功能.
问题是我无法弄清楚如何做到这一点.我已经试过之类的东西jQuery('form#listing').validate({});
和jQuery('form#listing').validate = null
,但没有运气.
触发DOM提交方法以跳过验证:
$("#listing")[0].submit();
您可以使用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();
var form = $('#my_form_id').get(0); $.removeData(form,'validator');
真的很有效.
您可以向元素(按钮,输入)添加取消的css类,以便跳过验证
您也可以这样使用公共"规则"功能:
$('input, select, textarea').each(function() { $(this).rules('remove'); });
这就是我正在使用的;)
如果您想要打开/关闭表单验证(例如,对付款类型的不同验证......),我发现没有其他方法有用.
我必须做的事情(这不是一个很好的解决方案,但确实有效)
设置验证:
jQuery('#form').validate();
禁用表单:
jQuery('#form').validate().currentForm = '';
再次启用表单:
jQuery('#form').validate().currentForm = jQuery('#form')[0];
这似乎对我有用:
var form = $('#my_form_id').get(0); $(form).removeData('validate');