我在表单上使用 jquery .validate() 后 jQuery .submit() 不起作用
Posted
技术标签:
【中文标题】我在表单上使用 jquery .validate() 后 jQuery .submit() 不起作用【英文标题】:jQuery .submit() doesn't work after i use jquery .validate() on a form 【发布时间】:2014-05-18 09:46:11 【问题描述】:我有一个触发表单提交的按钮:
$('#formButton').click(function(e)
$('#form').submit();
);
当我添加一个表单验证器时,它不再提交任何东西(不做任何事情):
var validate= $('#form').validate(
"rules":
"name":
"required": true
);
这就是我想要做的,但就像我说的那样,一旦我使用 .valiate() 函数,.submit() 函数就不会做任何事情:
$('#formButton').click(function(e)
if (validate.form() === false)
e.preventDefault();
else
$('#form').submit();
);
我不能使用 ajax 代替 .submit(),因为我有一些输入类型为“文件”,据我所知,我不能 .serialize()
用于此类输入类型。
有什么建议为什么在我使用 .validate() 后 .submit() 函数会停止提交?
【问题讨论】:
jQuery Validation - Works, but doesn't "submit" 的可能重复项 【参考方案1】:validate
方法阻止submit
事件的默认操作,当您提交表单时调用validate
方法。如果要在表单字段有效时提交表单,则应在传递给validate
方法的对象上定义submitHandler
函数:
$('#form').validate(
"rules":
"name":
"required": true
,
submitHandler: function(form)
form.submit();
);
由于form
参数是一个原始DOM 元素,调用它的submit
方法不会调用validate
方法。如果您不想定义上述方法,您可以使用 .get()
方法获取原始 DOM 元素并将其称为 submit
方法:
$('#form').get(0).submit();
【讨论】:
这是一个常见问题解答。 +1 但实际上它是一个巨大的重复以上是关于我在表单上使用 jquery .validate() 后 jQuery .submit() 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 jQuery Validate 正确验证放置在多个选项卡上的 Twitter 引导表单?
使用 .on 和 .validate 的 jQuery 必须提交两次表单才能验证