我正在使用jQuery验证插件来验证表单,如果点击某个链接,我想删除验证并提交表单。
我使用jQuery('form#listing').submit()
之类的javascript提交表单,因此我必须使用javascript删除验证规则/函数。
问题在于我无法弄清楚如何做到这一点。我尝试了jQuery('form#listing').validate({});
和jQuery('form#listing').validate = null
之类的内容,但没有运气。
答案 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');
它对我有用。