是否可以使用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();
表单提交两次,但问题是第二个是在第一个完成之间提交。
请帮助我如何确保第二次表单提交仅在第一次完成后才会发生。
答案 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()调用的回调函数中,您进行另一次提交。问题解决了。