页面如下:<li id=5>
<h2>5、你最喜欢什么礼物?</h2>
<div class="con">
    <label>
<input class="radio4" type="radio" id="selection_id" name=5 value=18 />
人民币。<br />
<input class="radio4" type="radio" id="selection_id" name=5 value=19 />
欧元。<br />
      </label>
    </div>
<div class="foot"></div>
</li>js代码如下function submit1(pageNO){
var bl=0;
var rs = document.getElementsByName("selection_id");
   for (var i = 0; i < rs.length; i++) {
    if (rs[i].checked) {
    bl++;
    }
   }
   alert(bl);
}
问题是,在ie浏览器显示正常,而在谷歌浏览器一直取不到值,大虾们求救啊。

解决方案 »

  1.   

    var rs = document.getElementsByName("5");
      

  2.   

    <li id=5>
        <h2>5、你最喜欢什么礼物?</h2>
        <div class="con">
        <label>
        <input class="radio4" type="radio" name="selection_id" name=5 value=18 />    
        人民币。<br />
        <input class="radio4" type="radio" name="selection_id"  name=5 value=19 />    
        欧元。<br />
          </label>
        </div>
        <div class="foot"></div>
    </li>getElementsByName读的是name,你的input里没有name只有idchrome里的才是正确的
    对于表单元素,浏览器都可以用getElementsByName来正确取值。对于非表单元素
    除IE外getElementsByName读取的是name
    IE读取的却是id不得不说IE的问题,id理论上是不允许重复的
      

  3.   

    name=5 去掉了吧……这个是啥……刚没注意
      

  4.   

    id属性应该是唯一的,但是在ie里document.getElementsByName("e")会获取 name 属性值为 e 的元素,同时也会获取 id 属性值为 e 的元素。
    1楼正确,input的id该成唯一的就行了
      

  5.   

    十分感谢大家的帮助,我自己有点没说明白,麻烦大家再看下我的radio是多个,如下:<li id=4>
    <h2>4、你最喜欢什么食物?</h2>
    <div class="con">
        <label>     
    <input class="radio3" type="radio" id="selection_id" name=4 value=24 />
    蛋炒饭。<br />
    <input class="radio3" type="radio" id="selection_id" name=4 value=25 />
    燕窝。<br />
          </label>
        </div>
    <div class="foot"></div>
    </li><li id=5>
    <h2>5、你最喜欢什么礼物?</h2>
    <div class="con">
        <label>     
    <input class="radio4" type="radio" id="selection_id" name=5 value=18 />
    人民币。<br />
    <input class="radio4" type="radio" id="selection_id" name=5 value=19 />
    欧元。<br />
          </label>
        </div>
    <div class="foot"></div>
    </li>
    而我想得到的结果就是所有被选中的radio个数和它的value,js如下:<script>
    function submit1(pageNO){
    var str="";
    var bl=0;
    var rs = document.getElementsByName("selection_id");
       for (var i = 0; i < rs.length; i++) {
        if (rs[i].checked) {
        str=str+rs[i].name+"~"+rs[i].value+";";
        bl++;
        }
       }
       alert("bl====="+bl+";str======="+str);
    }
    </script>
      

  6.   

    document.getElementsByName("selection_id")
    你有name 是 selection_id 的元素吗?
    id 最好是唯一!!!!!!!
    你这样的结构 可以用
    var inputs=document.getElementsByTagName("input");
      var str="";for (var i = 0; i < inputs.length; i++) {
               if (inputs[i].type.toLowerCase()=="radio" && inputs[i].checked) {
                   str=str+inputs[i].name+"~"+inputs[i].value+";";
                   i++;
               }
          }
      

  7.   

    楼主去了解下html的规范,id应唯一
      

  8.   

    太感谢各位的指点了,我以前一直写oracle的,没写过js,第一次写,十分感谢大家的帮助。
    刚又获得一个新的方向,就是加个form,然后用var rs = document.form1.selection_id;取值。