gpt4 book ai didi

javascript - 使用 JavaScript 同时提交 2 个表单

转载 作者:太空狗 更新时间:2023-10-29 16:01:31 25 4
gpt4 key购买 nike

我正在尝试使用 javascript 同时提交 2 个表单。但是,似乎只打开了第二个提交,而不是第一个。

代码相当简单:

<html>
<body>
<form id="report_0" method="POST" target="_blank" action="https://www.google.com">
<input type="hidden" name="test1" value="1">
<input type="submit" value="report_0">
</form>
<form id="report_1" method="POST" target="_blank" action="https://www.google.com">
<input type="hidden" name="test2" value="2">
<input type="submit" value="report_1">
</form>
<script>
document.getElementById("report_0").submit();
document.getElementById("report_1").submit();
</script>
</body>
</html>

不能使用 ajax 或等价物,因为它必须是“本地”POST(由于 CORS 问题)

我在某处读到您不能一次提交 2 个表单,这对我来说没有意义。我已经尝试将目标从“_blank”更改为“form1”和“form2”,但仍然没有。

非常感谢您的协助:)

编辑

这是我实际使用的:

for (....) {
var form = document.createElement("form");
form.setAttribute("name", "report_"+i);
form.setAttribute("method", "POST");
form.setAttribute("target", "_blank");
form.setAttribute("action", action);

for (var key in parms) {
var field = document.createElement("input");
field.setAttribute("type", "hidden");
field.setAttribute("name", key);
field.setAttribute("value", parms[key]);
form.appendChild(field);
}
console.log(form);
document.body.appendChild(form);
form.submit();
document.body.removeChild(form);
}

最佳答案

这不是最漂亮的做法,但我认为无论如何分享它会很好。我最终使用 setTimeout 解决了这个问题:

var requestDelay = 2000;
document.getElementById("form-a").submit();

setTimeout(function() {
document.getElementById("form-b").submit();
}, requestDelay);

这样,它会等到form A(可能,估计需要2秒)被提交,然后提交form B。您可能需要尝试使用 requestDelay 来满足您的需求。

关于javascript - 使用 JavaScript 同时提交 2 个表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17540875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com