表单提交后防止默认
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();
}
});
控制台日志您可以按预期看到输出(分别为"此处"、"真"、"真"、"真")在您第二次按下按钮时,表单提交。 我也尝试了以下建议,但无济于事:
-> $("#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();
}
相关文章:
- HTML表单提交时未执行外部函数
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 将图像上传ajax与表单提交ajax相结合
- Javascript无法处理表单提交
- 如何在我的情况下禁用表单提交
- 加载后的页面与ajax表单提交不起作用
- 表单提交后防止默认
- 使用jQuery切换根据选中的复选框隐藏/显示表单提交按钮 - 如何设置默认关闭的提交按钮
- 通过按钮/类型=“提交”行为恢复默认表单提交
- 阻止表单提交 预防默认问题
- 如何将块UI与setTimeout一起使用,并在表单提交时防止默认
- Javascript 表单提交 prevent默认在使用 AJAX 检索表单时不起作用
- 覆盖Magento中的默认数据表单提交JS活动
- 表单提交时,即使我使用阻止默认提交按钮点击
- 如何防止表单提交时出现默认情况
- 防止默认的表单提交事件从触发,如果javascript使用jquery启用
- 替换表单提交后的默认占位符
- 在Bootstrap Validator form中停止默认表单提交
- JQuery:如何在默认值未更改时禁用表单提交
- 为什么表单提交默认值被删除?