我想提交存在于数组中的html表单。但是问题是只有最后一个表单实际上已发布到服务器。所有其他表格均未到达服务器。任何提示我在这里做错了吗?
if (numberOfRows > 0) {
for (var i = 0; i < numberOfRows; i++)
{
alert('submitting form ' + i);
submittedForms[i].submit();
}
}
}
答案 0 :(得分:4)
使用.submit()
提交表单类似于用户单击“提交”按钮,这将导致加载新页面。因此,在同一页面中的多个表单上调用.submit()等于用户单击多个提交按钮,那么浏览器应该怎么做?我不确定该规范是否记录了某种行为,但是我不知道该如何处理。如果您只希望表单数据到达服务器,请使用AJAX。例如,使用jQuery时,例如:jQuery AJAX submit form
答案 1 :(得分:0)
尝试一下:
$('#form1').submit();
$('#form2').submit();
答案 2 :(得分:0)
感谢@pschichtel。 我最终使用ajax一次发布了多个表单。下面是我的最终代码:
var numberOfRows = submittedForms.length;
if (numberOfRows > 0) {
for (var i = 0; i < numberOfRows; i++) {
var formData = new FormData(submittedForms[i]); // yourForm: form selector
postFormAjax(formData);
}
deleteForms();
}
function postFormAjax(formData)
{
$.ajax({
type: "POST",
url: "https:url/servlet/servlet.WebToCase?encoding=UTF-8", // where you wanna post
data: formData,
processData: false,
contentType: false,
error: function (jqXHR, textStatus, errorMessage) {
alert(errorMessage); // Optional
},
success: function (data) {
alert(data)
}
});
}