我有一个触发表单提交的按钮:
$('#formButton').click(function(e) {
$('#form').submit();
)};
当我添加表单验证器时,它不再提交任何内容(不执行任何操作):
var validate= $('#form').validate({
"rules": {
"name": {
"required": true
}
}
});
这就是我想要做的,但就像我说.submit()函数在我使用.valiate()函数后什么都不做:
$('#formButton').click(function(e) {
if (validate.form() === false) {
e.preventDefault();
} else {
$('#form').submit();
}
)};
我不能使用ajax而不是.submit()因为我有一些类型为'file'的输入,并且据我所知我不能.serialize()
这样的输入类型。
为什么.submit()函数在我使用.validate()后停止提交的任何建议?
答案 0 :(得分:7)
validate
方法时, submit
方法会阻止validate
事件的默认操作。如果要在表单字段有效时提交表单,则应在传递的对象上为submitHandler
方法定义validate
函数:
$('#form').validate({
"rules": {
"name": {
"required": true
}
},
submitHandler: function(form) {
form.submit();
}
});
由于form
参数是原始DOM元素,因此调用它submit
方法并不会调用validate
方法。如果您不想定义上述方法,可以使用.get()
方法获取原始DOM元素,并将其命名为submit
方法:
$('#form').get(0).submit();