我有一次提交两种表格的功能。并且最后(第二个)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">
答案 0 :(得分: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
添加到submisison。只需忽略我上面建议的preventDefault行。 [坏主意,但会奏效]
<form id="form0" name="form0" onsubmit="formFunction(); return false">