我需要提交一个带有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()实际提交表单。
答案 0 :(得分:0)
或者,只需在uri中提交1个参数criteria
...然后该参数为string
并发送一个JSON对象...然后在服务器端反序列化它...
1个对象参数