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