提交多个HTML表单

时间:2018-06-20 09:04:47

标签: javascript forms html-form

我想提交存在于数组中的html表单。但是问题是只有最后一个表单实际上已发布到服务器。所有其他表格均未到达服务器。任何提示我在这里做错了吗?

if (numberOfRows > 0) {
    for (var i = 0; i < numberOfRows; i++) 
        {
            alert('submitting form ' + i);
                submittedForms[i].submit();
        }
    }
}

3 个答案:

答案 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)
        }
    });
}