在一个表单的提交事件处理程序中提交另一个表单并返回 false
以阻止提交第一个表单是否安全?
$("#form1").submit(function() {
$("#form2").submit();
return false;
});
我正在使用这种方法,并且它有效(至少在 IE6 中)。但是,我担心这可能不适用于其他浏览器。对 submit
的调用能否以某种方式取消 return false
?
我正在考虑的替代方法是
$("#form1").submit(function() {
setTimeout('$("#form2").submit();', 10);
return false;
});
....但这很可能会增加实际不需要的复杂性。
需要这样做的原因是用户正在提交 form1
,但在某种情况下(我可以使用 JavaScript 检测到)这会导致错误,可以通过以下方式纠正:在 form2
的字段之一中设置一些数据,然后提交此表单。
最佳答案
您的代码应该适用于所有浏览器,但如果您想绝对确定可以这样做
$("#form1").submit(function(evt) {
evt.preventDefault(); // cancel the default behavior
$("#form2").submit();
return false;
});
使用.preventDefault()
方法确保您在执行可能干扰默认行为的操作之前取消默认行为。
关于jquery - 阻止一个表单提交,然后提交另一个表单 - 这种方法可靠吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4193612/