因为是用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按钮提交 是不是有区别。
请问各位告诉如何解决?

解决方案 »

  1.   

    property="insrntparlistForm.insured_name" 
    request.getParameterValues("benifyForm.benify_name");
      

  2.   

    用ajax提交你能取到一个数组?
      

  3.   

    property="insrntparlistForm.insured_name" 
    request.getParameterValues("benifyForm.benify_name");这个,说实话,看不懂啊。
      

  4.   

    换成form方式提交吧,还不够麻烦的。
      

  5.   

    getParameterValues 获取名字不对吧。
    insrntparlistForm.insured_name
    应该是这个
    request.getParameterValues("insrntparlistForm.insured_name");
      

  6.   

     datas[n.name] = encodeURI($(n).val());            
    这句有问题 覆盖的
    如:datas['insrntparlistForm.insured_name']=b
     第二次执行的时候 datas[''insrntparlistForm.insured_name'']=c
    所以最终传到后台的数据肯定只有一个c
      

  7.   

    var temp=[];
    $(":input",$("form")).each(function(i,n) {
        temp[i]=encodeURI($(n).val());            
    }) ;datas[n.name] = temp;
    试试
      

  8.   

    是有区别 你应该用两个不同name的 或者 不同id 来弄吧!
      

  9.   

      
    其实生成的源码就是:<input type="text" class="input120 required" id="benify_name" value="" maxlength="80" name="benifyForm.benify_name">name="benifyForm.benify_name"这是没问题吧 ~
      

  10.   

    原本是form方式提交 ,但是这样会导致其他业务复杂啦~
      

  11.   

    引用 1 楼 shine333 的回复:property="insrntparlistForm.insured_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"这是没问题吧 ~
      

  12.   

    这行代码有问题:
    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  
      

  13.   


    当我没看过TextTag源码啊?!
      

  14.   

    我上次也做了个跟你这有点像的,也是动态表单,我是拼装成json数据传递到后台的,你可以试试这种方法