1

我有一次提交两个表格的功能。最后一个(第二个)post方法没有alert()是不会生效的。

你能告诉我我的错误吗?

  function formFunction() {
        ...
        $.post($("#form1").attr("action"), $("#form1").serialize() );
        $.post($("#form2").attr("action"), $("#form2").serialize() );

        //alert('done');
}

UPD

这就是函数的调用方式

<form id="form0" name="form0" onsubmit="formFunction()">
    <input id="mainFormValue" type="text">
4

1 回答 1

3

它失败的原因是您没有取消原始表单提交。这意味着当您单击按钮时,该页面正在回发到服务器。您需要做的是阻止该原始表单提交完成。

如果您使用 jQuery 添加事件处理程序,您可以使用 preventDefault() 取消表单提交。

function formFunction(e) {
     e.preventDefault();
     $.post($("#form1").attr("action"), $("#form1").serialize() );
     $.post($("#form2").attr("action"), $("#form2").serialize() );
}

将表单提交更改为不显眼的 JavaScript,以获取 jQuery 设置的正确事件对象。

$("#form0").submit(formFunction);

其他解决方案是在提交中添加一个return false。忽略我上面建议的 preventDefault 行。[坏主意,但会工作]

<form id="form0" name="form0" onsubmit="formFunction(); return false">
于 2012-11-06T21:31:35.787 回答