在一个表单的提交事件处理程序中是否安全 - 提交另一个表单并返回false
以阻止提交第一个表单?
$("#form1").submit(function() {
$("#form2").submit();
return false;
});
我正在使用这种方法,它起作用(至少在IE6中)。但是,我担心这可能不适用于其他浏览器。拨打submit
可能会以某种方式取消return false
吗?
我正在考虑的替代方法是
$("#form1").submit(function() {
setTimeout('$("#form2").submit();', 10);
return false;
});
....但这可能会增加实际上不需要的复杂性。
需要这样做的原因是用户正在提交form1
,但在某种情况下(我可以使用JavaScript检测到)这会导致错误,可以通过设置一些数据来纠正在form2
的一个字段中,然后提交此表单。
答案 0 :(得分:3)
您的代码应适用于所有浏览器,但如果您想完全确定可以执行
$("#form1").submit(function(evt) {
evt.preventDefault(); // cancel the default behavior
$("#form2").submit();
return false;
});
使用.preventDefault()
方法可确保您取消之前的默认行为执行可能会干扰它的内容。
答案 1 :(得分:1)
你原来的方法应该适用于所有地方。