我正在尝试检查收音机“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”是无线电计数的数量,在第二个循环我试图在阵列中检查无线电并打印它们但它只打印总单选按钮但不打印已检查的无线电???
希望你的建议
答案 0 :(得分:1)
你应该改变
if(document.getElementsByName('j').checked)
到
if(document.getElementsByName(j)[0].checked)
因为您的控件的名称为1,2,3而不是&#39; j&#39;,并且j是您的for循环初始值,因此不需要用单引号括起来。
as document.getElementsByName返回一个集合。你应该检查0索引元素。
答案 1 :(得分:0)
只是评论。
第一个for循环内的块可以是:
for (var i=0; i<allR.length; i++){
if (allR[i].type=='radio') {
b++;
a += allR[i].checked;
}
}
但有些人不喜欢这种类型转换。