日期:2014-05-16  浏览次数:20352 次

请高人指点,为什么radio是选中状态但是判断checked总是false???
我动态生成了radio,代码如下
"<span ><input id='"+ tmp1+ "' name='"+ index+ "' type='radio'   value='1' " + (cmp == 1 ? "checked=true":"")+ ">主要</input></span>"

"<span ><input id='"+ tmp2+ "' name='"+ index+ "' type='radio'  value='0' "+ (cmp == 0 ? "checked=true": "") + ">次要</input></span>"

以上代码是在一个for循环内生成的,即每两个radio是在一行内,id不同,name相同,并且根据变量cmp设置了初始选中状态

这是我获得radio的checked的代码,axisId是上面的"主要"radio的id值

var x==document.getElementById(axisId);
if (x.checked) 
{
  .......    

我发现即使radio初始状态就是选中的情况下,checked还是为false,郁闷中...

------解决方案--------------------
var x==document.getElementById(axisId); 

改成这样试试
var x = document.getElementById("axisId"); 
------解决方案--------------------
你的axisId有问题罗,获取到的对象就是没有勾选的

var s=''
for (var index = 0; index < 2; index++) {
    cmp = index;
    s += "<span ><input id='" + index + "_1' name='" + index + "' type='radio'   value='1' " + (cmp == 1 ? "checked=true" : "") + ">主要</input></span>"
+ "<span ><input id='" + index + "_2' name='" + index + "' type='radio'  value='0' " + (cmp == 0 ? "checked=true" : "") + ">次要</input></span>"
}
document.write(s)

var x = document.getElementById('0_2');
alert(x.checked)//true
x = document.getElementById('1_1');
alert(x.checked)//true