是否可以通过不同的动作多次提交表单?

时间:2014-04-30 08:07:18

标签: javascript forms

是否可以使用HTML中的不同操作多次提交表单。即。

document.forms[0].action = "action1.do";  //It insert the data into database and redirect to other page in same tab. 
document.forms[0].submit();

document.forms[0].action = "action2"; // Its generate a report with data inserted by action1 in new tab.
document.forms[0].target = "_blank";
document.forms[0].submit();

表单提交两次,但问题是第二个是在第一个完成之间提交。

请帮助我如何确保第二次表单提交仅在第一次完成后才会发生。

2 个答案:

答案 0 :(得分:1)

您需要将表单提交作为ajax请求发送,并在您执行时禁用该表单。一旦请求响应您,然后在回调中启用表单/发送下一个请求/等。

答案 1 :(得分:0)

提交是异步的:如果您进行提交,JS将继续运行,浏览器将在后台执行操作。 (但它会复制表格,所以是的,你可以安全地做你所做的事。)现在如果你想等待第一个操作完成然后提交第二个动作,你有几个选择,其中最优雅的是az AJAX调用,使用jQuery,如:

var formData = $("form").serializeArray();
$.post("http://whatever.xxx", formData, function() {
    //
    // here's your callback!
    // you want do the second submit here.
    //
});

在$ .post()调用的回调函数中,您进行另一次提交。问题解决了。