JS 循環調用 form1.submit(); form2.submit();,只有第二個生效,頁面跳轉到第二個 action。
瀏覽器**同一時刻只能導航到一個 URL**。同步提交多個 Form 相當於連續導航,後者覆蓋前者。
<form id="f1" action="/api1" target="_blank">...</form>
<form id="f2" action="/api2" target="hidden_iframe">...</form>
<iframe name="hidden_iframe" style="display:none"></iframe>
<script>
document.getElementById('f1').submit();
document.getElementById('f2').submit();
</script>
function submitForm(formId) {
var $form = $('#' + formId);
$.ajax({
url: $form.attr('action'),
method: $form.attr('method'),
data: $form.serialize(),
success: function(resp) { console.log(formId, resp); }
});
}
submitForm('f1');
submitForm('f2');
若業務允許,後端提供批量接口,前端一次性發送所有數據。
同步 Form 提交無法並行,**AJAX 是現代標準解法**,或利用 target 區分導航上下文。