动态选择一个单选按钮

动态选择一个单选按钮

问题描述:

我需要动态选择一个单选按钮。动态选择一个单选按钮

ⅰ)我已经使用创建几个单选按钮动态地,即,在一个功能:

function funcName() 
{ 
    Something.innerHTML = '<input type = "radio" name = "rName" id = "1" />' + '<input type = "radio" name = "rName" id = "2" />' + '<input type = "radio" name = "rName" id = "3" />'; 

} 

ⅱ)我需要动态选择单选按钮,在另一种功能:

function funcNAme(someVar) 
{ 
    document.getElementById(someVar).checked = true; 
} 

但这不起作用,即单选按钮没有被选中。但是,“禁用”正常工作。 另外:

alert(someVar); 

返回适当的期望值。

+0

你的函数应该是工作的罚款... [查看这个示例](http://jsfiddle.net/2dmSz/1/) – Teneff

+0

这可能与我的第二个评论我的答案 - 关于将ID设置为数字 - 不是一种好的做法并且无效 – ManseUK

的语法如下:

element.checked = true; 

所以你需要使用

document.getElementById(someVar).checked = true; 

看到这里 - >HTMLInputElement

工作实例 - >http://jsfiddle.net/p5yca/

并请请不要使用数字作为元素的ID - >http://www.w3.org/TR/html401/types.html#type-name

+0

对不起,这是一个错字。 –

+0

那么它在我的例子中工作正常 - 什么浏览器失败?你怎么触发这个功能?你得到什么错误? – ManseUK

+0

使用ff。不一定会激发一个功能。定义一个创建单选按钮的函数。使用另一个功能来选择它。实际上不是一个错误,单选按钮没有被选中 –

似乎很好地工作:

function checkRadio(id) { 
    document.getElementById(id).checked = true; 
} 

function createRadios() 
{ 
    document.getElementById('container').innerHTML = '<input type = "radio" name = "rName" id = "1" />' + '<input type = "radio" name = "rName" id = "2" />' + '<input type = "radio" name = "rName" id = "3" />'; 
} 

createRadios(); 
checkRadio("2"); 

示例 - http://jsfiddle.net/infernalbadger/LHyQT/2/

+0

对不起,这是一个错字。 –

+0

@ElClassico我已经更新了小提琴,所以它几乎与你的例子相同,它工作正常。你使用的是什么浏览器? (我测试了铬,ff和ie8,它工作正常) –

+0

使用ff。是因为我动态创建按钮,我遇到这个错误? –

你设置checked属性上innerHTML属性,而不是DOM元素本身;这应该做的伎俩:

document.getElementById("id").checked = true; 
+0

对不起,这是一个错字。 –