提交我的表格2次不起作用

时间:2015-05-07 15:54:09

标签: javascript jquery forms post

我需要提交一个带有hudge params编号的表单,并且我不允许在我的tomcat中修改maxParameterCount。

所以我决定将我的表格数据分成几部分,然后逐一提交。

我尝试提交前10行,然后提交10行,依此类推。

但是当表单应该是sumbit,没有任何反应时,循环继续,最后我的表单仍然存在于所有行... 我的部分代码:

    var valuesOriginal = new Map();
    var valuesEdited = new Map();
    var valuesBackup = new Map();
    $.each($('#zgImport').serializeArray(), function(i, field) {

        if(field.name.substring(0,13) == "userLinesAuto"){
            valuesEdited.set(field.name, field.value);
        }else if (field.name.substring(0,17) == "userLinesOriginal"){
            valuesBackup.set(field.name, field.value);
        }else if (field.name.substring(0,9) == "userLines"){
            valuesOriginal.set(field.name, field.value);
        }

    });

    var totalRows = valuesOriginal.size;
    $('[id^="userLines"]').attr("disabled", "disabled"); // empty form from userLines

    var i =0;
    var j=0;
    var fieldsNumber = 14;
    var rowPerSubmit = 3;
    var submitNumber = Math.ceil((totalRows / fieldsNumber)/rowPerSubmit);
    var currentRowNumber =0;
    var cptAddedParams = 0;
    var mapIter = valuesOriginal.entries();
    var fieldPerSubmit = rowPerSubmit*fieldsNumber;
    var currentField;


while(j<submitNumber){ // submiting several times
        alert("new form");
        while(cptAddedParams < fieldPerSubmit){ //Add params to form
            currentField = mapIter.next().value;
            var input = $("<input>").attr("type", "hidden").attr("name", currentField[0]).val(valuesOriginal.get(currentField[0]));
            $('#zgImport').append($(input));
            cptAddedParams++;
        }
        cptAddedParams =0;
        j++;
        alert("submiting");
        jQuery("#zgImport").submit(function(){
            alert("Submitted");
        }); // submiting partial form
        $('[id^="userLines"]').attr("disabled", "disabled"); // empty form from userLines
    }

我只获得“提交”警报一次(在我的测试中我得到20行,所以我应该有两次),我在java代码的调试中看到控制器的方法只调用1次所有表格行

似乎jquery等待第二个sumbit()实际提交表单。

1 个答案:

答案 0 :(得分:0)

或者,只需在uri中提交1个参数criteria ...然后该参数为string并发送一个JSON对象...然后在服务器端反序列化它...

1个对象参数