阻止一个表单提交,并提交另一个表单 - 这种方法是否可靠?

时间:2010-11-16 11:24:05

标签: jquery forms submit form-submit

在一个表单的提交事件处理程序中是否安全 - 提交另一个表单并返回false以阻止提交第一个表单?

$("#form1").submit(function() {
    $("#form2").submit();
    return false;
});

我正在使用这种方法,它起作用(至少在IE6中)。但是,我担心这可能不适用于其他浏览器。拨打submit可能会以某种方式取消return false吗?

我正在考虑的替代方法是

$("#form1").submit(function() {
    setTimeout('$("#form2").submit();', 10);
    return false;
});

....但这可能会增加实际上不需要的复杂性。

需要这样做的原因是用户正在提交form1,但在某种情况下(我可以使用JavaScript检测到)这会导致错误,可以通过设置一些数据来纠正在form2的一个字段中,然后提交此表单。

2 个答案:

答案 0 :(得分:3)

您的代码应适用于所有浏览器,但如果您想完全确定可以执行

$("#form1").submit(function(evt) {
    evt.preventDefault(); // cancel the default behavior
    $("#form2").submit();
    return false;
});

使用.preventDefault()方法可确保您取消之前的默认行为执行可能会干扰它的内容。

答案 1 :(得分:1)

你原来的方法应该适用于所有地方。