因为是用jquery AJAX提交到后台,所以前台处理如下: $(":input",$("form")).each(function(i,n) {
datas[n.name] = encodeURI($(n).val());
}) ;
$.post(url,datas,function(data){
var html = decodeURI(data);
window.onbeforeunload=function(){
$('#insurant_list',window.opener.document).html(html);
$('#saveBtn').attr("disabled",true);
}
window.close();
});页面中有相同name的表单项如下:<html:text name="proposalForm" property="insrntparlistForm.insured_name" styleId="insuredname1" maxlength="80" styleClass="input120 required"></html:text>
<html:text name="proposalForm" property="insrntparlistForm.insured_name" styleId="insuredname2" maxlength="80" styleClass="input120 required"></html:text>
<!--有多个insrntparlistForm.insured_name-->JAVA后台获取String[] benify_name = request.getParameterValues("benifyForm.benify_name");
//只能获取到最后一个value值得 我调试过JS
datas[n.name] = encodeURI($(n).val());
怀疑是datas[n.name] 获取最后一个name是将前面相同name的value覆盖啦~
这样与直接用submit按钮提交 是不是有区别。
请问各位告诉如何解决?
datas[n.name] = encodeURI($(n).val());
}) ;
$.post(url,datas,function(data){
var html = decodeURI(data);
window.onbeforeunload=function(){
$('#insurant_list',window.opener.document).html(html);
$('#saveBtn').attr("disabled",true);
}
window.close();
});页面中有相同name的表单项如下:<html:text name="proposalForm" property="insrntparlistForm.insured_name" styleId="insuredname1" maxlength="80" styleClass="input120 required"></html:text>
<html:text name="proposalForm" property="insrntparlistForm.insured_name" styleId="insuredname2" maxlength="80" styleClass="input120 required"></html:text>
<!--有多个insrntparlistForm.insured_name-->JAVA后台获取String[] benify_name = request.getParameterValues("benifyForm.benify_name");
//只能获取到最后一个value值得 我调试过JS
datas[n.name] = encodeURI($(n).val());
怀疑是datas[n.name] 获取最后一个name是将前面相同name的value覆盖啦~
这样与直接用submit按钮提交 是不是有区别。
请问各位告诉如何解决?
request.getParameterValues("benifyForm.benify_name");
request.getParameterValues("benifyForm.benify_name");这个,说实话,看不懂啊。
insrntparlistForm.insured_name
应该是这个
request.getParameterValues("insrntparlistForm.insured_name");
这句有问题 覆盖的
如:datas['insrntparlistForm.insured_name']=b
第二次执行的时候 datas[''insrntparlistForm.insured_name'']=c
所以最终传到后台的数据肯定只有一个c
$(":input",$("form")).each(function(i,n) {
temp[i]=encodeURI($(n).val());
}) ;datas[n.name] = temp;
试试
其实生成的源码就是:<input type="text" class="input120 required" id="benify_name" value="" maxlength="80" name="benifyForm.benify_name">name="benifyForm.benify_name"这是没问题吧 ~
request.getParameterValues("benifyForm.benify_name");
其实生成的HTML就是: <input type="text" class="input120 required" id="benify_name" value="" maxlength="80" name="benifyForm.benify_name">name="benifyForm.benify_name"这是没问题吧 ~
datas[n.name] = encodeURI($(n).val());
javascript 代码中的数组相当于 java 中的 Map , 不能存放重复数据。
建议楼主用 jQuery Form Plugin
http://jquery.malsup.com/form/
但一个页面中有多个提交(比如查找、导出),可以用这个插件,不同的功能,提交到不同的 url , 不用更改原有 form 的 action url:
var options = {
target: '#divToUpdate',
url: 'comment.php',
success: function() {
alert('Thanks for your comment!');
}
};
// pass options to ajaxForm
$('#myForm').ajaxForm(options);--------------
欢迎大家下载试用我们的 web 单点登录系统, http://zhegui.biz
当我没看过TextTag源码啊?!