我正在尝试在提交表单之前对其进行验证。我尝试了几种方法但是我无法在preventDefault之后提交表单。这是我目前的代码:
$('#formquote').submit(function(e){
e.preventDefault();
console.log('here');
validating = true;
var tval = valText('input[name=contactname]');
var pval = valPhone('input[name=telephone]');
var eval = valEmail('input[name=email]');
console.log(tval);
console.log(pval);
console.log(eval);
if(tval && pval && eval){
$("#formquote").unbind('submit');
$("#formquote").submit();
}
});
控制台记录您可以按预期看到输出('here',true,true,true) 当表单第二次按下按钮时提交。我也试过以下建议无济于事:
-> $("#formquote").unbind('submit').submit(); //same result
-> $("#formquote").submit(); //by itself, infinite loop
-> $("#formquote")[0].submit(); //non function error
-> $('#formquote').unbind('submit', preventDefault); //'preventDefault' not defined
任何帮助将不胜感激
答案 0 :(得分:4)
而不是总是阻止表单提交,进行验证并再次提交(如果通过),为什么不在验证失败时阻止提交?像这样:
$('#formquote').submit(function (e) {
validating = true;
var tval = valText('input[name=contactname]');
var pval = valPhone('input[name=telephone]');
var eval = valEmail('input[name=email]');
if (!(tval && pval && eval)) {
e.preventDefault();
}
});
答案 1 :(得分:-1)
我想接受的答案是最好的方法,但如果出于某种原因,您需要先使用od large.db
然后提交表单,这对我有用:
preventDefault()