一个id=form1的表单中有若干个radio如果name相同的话,好像没办法进行选择,于是我把在js表单里面写成name=\'xm"+i+"\'
这样可以正常选择radio,但是又不能正常取值了如何取不同name的值呢?如name=\'xm"+i+"\'  ,name=\'qq"+i+"\' , name=\'tel"+i+"\'  ……

解决方案 »

  1.   

    也就是:取得表单中,不同名称的radio的值?因为这个表单是无限循环的,如上面所示,里面可能是xm1,也可能是xm1000,用的是js来取值
      

  2.   

    <form id='form1'>
       <input type="radio" name="groupRadio" value="1" onclick="test()"/>1
       <input type="radio" name="groupRadio" value="2" onclick="test()" />2
    </form>function test(){
       
        var radioObj = document.all["groupRadio"];
        var value="";
    for (var i = 0; i < radioObj.length; i++) {
                if (radioObj.item(i).checked) {
                    value = radioObj.item(i).value;
                }
          }
          alert(value);
       
      }   
      

  3.   

    这样是一个个的点击立即取值吗?如果我先点击,不进行任何处理,单点击保存整个表单的submit时候,才去处理?
      

  4.   

    另外还有,如果name相同的话,似乎无法勾选的
      

  5.   

    radio 的name 就是要一样的~~~
      

  6.   

    我测试的没有问题啊,name是一样的!!你将test取消掉,在最好提交的时候,循环下
    var radioObj = document.all["groupRadio"];
               var value="";
                for (var i = 0; i < radioObj.length; i++) {
                if (radioObj.item(i).checked) {
                    value = radioObj.item(i).value;
                }
          }
    就可以得到你的选中的值了。这里只是给你一个测试,让你知道怎样获得值,变通下就可以了
      

  7.   

     
      <html>   
      <head>   
      <title>无标题文档</title>   
      
      <script language="javascript"   >      function test(){
       
        var radioObj = document.all["groupRadio"];
        var value="";
    for (var i = 0; i < radioObj.length; i++) {
                if (radioObj.item(i).checked) {
                    value = radioObj.item(i).value;
                }
          }
          alert(value);
       
      }   
      </script>   
      </head>   
        
      <body   bgcolor="#FFFFFF"   text="#000000">  
      <form id='form1'>
       <input type="radio" name="groupRadio" value="1" onclick="test()"/>1
       <input type="radio" name="groupRadio" value="2" onclick="test()" />2
    </form>
         
      </body>   
      </html>   
    我刚测试的界面~
      

  8.   

    可能我表达的意思没有清楚
    我知道name是一样才能选择其中之一的
    问题就是,这个表单是一直循环的
    有可能name="test"的时候,下一个表单name也是test,但是如果整个表单都是name=test的radio后,就只能选择其中一个了表单是这样的:form1
    单元格1
      radio :  name=test1单元格2
      radio :  name=test2……单元格N
      radio :  name=testN
    要求是每个单元格中,test都的独立的,选择本单元格的内容,不会影响到其他的单元格;如果name都为test,那就无法进行选择了。  当所有单元格都选择好后,取test的值(test后面数字是循环的,如test1,test2,test3,从0到无限不等)  
      

  9.   

    表单样式:<form name="form1" id="form1">
       <table id="tab1">      <tr>
             <td><input type="radio" value="1" name="test1" id="test1"> 男   <input type="radio" value="0" name="test1"> 女</td>
         </tr>
      </table>
       <table id="tab2">      <tr>
             <td><input type="radio" value="1" name="test2" id="test2"> 男   <input type="radio" value="0" name="test2" id="test2"> 女</td>
         </tr>
      </table>
    ……   <table id="tabN">      <tr>
             <td><input type="radio" value="1" name="testN" id="testN"> 男   <input type="radio" value="0" name="testN" id="testN"> 女</td>
         </tr>
      </table><input type="button" value="保存表单" onclick="save();">
    </form>单击保存表单后,取里面每个独立table里面的radio的值
      

  10.   

    表单里面的内容,是通过点击新增按钮,增加出来的一行新表单,所以该表单的内容一直是无限循环表单的要素是一直,如每个独立表格内,都要求填写姓名,性别等,如果是input="text"这样就好取值了,问题就是radio和checkbox,如果每个新增出来的表格内的name都和上面已经存在的相同,就不能选择了我修改了name,能选择,就是无法取值。。
      

  11.   

     
      <html>   
      <head>   
      <title>无标题文档</title>   
      
      <script language="javascript"   >     function save(){
       //alert(eval(document.all["test"+1].length));
       var arr=new Array();
       for(var k=1;k<=3;k++){  //这里K代表你的N值,就是你的table个数,我这测试,就写死了
       var radioObj =eval(document.all["test"+k]);
        var value="";
    for (var i = 0; i < radioObj.length; i++) {
              if (radioObj.item(i).checked) {
                    value = radioObj.item(i).value;
                    arr.push(value);
               }
           }
         }
          for(var i=0;i<arr.length;i++){
           alert(arr[i]);
          }
      
      }
      </script>   
      </head>   
        
      <body   bgcolor="#FFFFFF"   text="#000000">  
      <form id='form1'>
       <form name="form1" id="form1">
      <table id="tab1">  <tr>
      <td><input type="radio" value="1" name="test1" id="test1"> 男 <input type="radio" value="0" name="test1"> 女</td>
      </tr>
      </table>
      <table id="tab2">  <tr>
      <td><input type="radio" value="1" name="test2" id="test2"> 男 <input type="radio" value="0" name="test2" id="test2"> 女</td>
      </tr>
      </table>
      <table id="tab3">  <tr>
      <td><input type="radio" value="1" name="test3" id="test3"> 男 <input type="radio" value="0" name="test3" id="testN"> 女</td>
      </tr>
      </table><input type="button" value="保存表单" onclick="save();">
    </form>
    </form>
         
      </body>   
      </html>   
      

  12.   

    我这在UltraEdit里面写的,这排版有点问题,测试是通过的!
      

  13.   

    ls 兄弟:很完美了!
    能否还请教一个问题呢?如果我要将test的值,用逗号拼成一个可以吗?
    如我要取test1到testN的值,alert出来能否显示为:0,1,2……这样?