0

我正在尝试检查收音机“id”和“name”,因为我的收音机名称和 id 与 1、2、3 相同......等等

我的代码在这里,

var selection=new Array(); 
 var allR = document.getElementsByTagName('input');
  var a=0;
  var b=0;
    for(var i=0; i<allR.length; i++){ 
        if(allR[i].type=='radio') { b++; }      
        if(allR[i].type=='radio' && allR[i].checked) { a++; } 
    }
var num=0;
alert(b);

for(var j=1;j<=b ;j++) {

  //for(var i=0; i<alr.length; i++){ 

    if(document.getElementsByName('j').checked) {
      selection[num]=j;
      num++;
      alert(j);
  //}
  }
}

在此代码中,var“b”是收音机计数的数量,在第二个循环中,我试图在数组中获取选中的收音机并打印它们,但它只打印总单选按钮但不打印选中的收音机???

希望得到你的建议

4

2 回答 2

1

你应该改变

if(document.getElementsByName('j').checked)

if(document.getElementsByName(j)[0].checked)

因为您的控件名称为 1、2、3。不是“j”,而 j 是您的 for 循环初始值,因此不需要用单引号括起来。

因为 document.getElementsByName 返回一个集合。您应该按 0 索引检查元素。

于 2012-09-21T04:51:38.570 回答
0

只是一个评论。

第一个 for 循环内的块可以是:

for (var i=0; i<allR.length; i++){ 

    if (allR[i].type=='radio') {
       b++;  
       a += allR[i].checked; 
    }
}

但是有些人不喜欢这样依赖于类型转换。

于 2012-09-21T05:17:34.780 回答