[英]Form submit after preventDefault
我正在尝试在提交表单之前对其进行验证。 我尝试了几种方法,但是在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
任何帮助,将不胜感激
除了始终阻止表单提交,进行验证并在表单通过之后再次提交,而不是始终阻止表单提交,为什么不在验证失败时仅阻止提交表单呢? 像这样:
$('#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();
}
});
我想可接受的答案是执行此操作的最佳方法,但是如果由于某种原因,您需要先使用preventDefault()
然后提交表单,则此方法对我有用:
$('#formquote').on('submit', function (e) {
e.preventDefault();
// Do validation stuff..
// Then submit the form
$(this).submit();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.