代码之家  ›  专栏  ›  技术社区  ›  Richard Ev

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

  •  2
  • Richard Ev  · 技术社区  · 14 年前

    在一个表单的提交事件处理程序中提交另一个表单并返回是否安全? 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 回复  |  直到 14 年前
        1
  •  3
  •   Gabriele Petrioli    14 年前

    您的代码应该可以在所有浏览器中使用,但是如果您希望绝对确定可以这样做

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

    使用 .preventDefault() 方法确保取消默认行为 之前 做一些可能干扰它的事情。

        2
  •  1
  •   jwueller    14 年前

    你最初的方法应该适用于任何地方。