选择无线电选项不会更改已检查的属性

时间:2014-05-16 02:59:36

标签: javascript

我正在生成一个带有一些单选按钮和复选框的HTML表单。例如,生成的单选按钮代码如下:

<input id="101_2" type="radio" name="101" value="2" >
<input id="101_3" type="radio" name="101" value="3" checked="true">

使用JavaScript我可以创建一个for循环来查看使用check属性检查的无线电。 问题是如果我手动点击另一个无线电选项(来自与示例中相同的组),在HTML中可视地看到我选择了另一个无线电,但JavaScript仍然说输入101_3是所选的无线电选项。如果我使用firebug查看HTML,我可以看到新选择的选项确实没有被选中(没有选中的属性)...尽管我已经手动选择了。

有关于此的任何想法吗?

1 个答案:

答案 0 :(得分:0)

在命名单选按钮或任何类型的DOM输入元素时,Fist和formost永远不会使用数字启动输入元素的名称,始终用字母开始输入元素的名称。

对于您发布的代码,您可以用类似的方式命名您的无线电,one01或x101或o101,等等......

对你的ids做同样的事情&#39;任何DOM元素。永远不要使用数字启动DOM元素的id。

- HTML

<input id="x101_2" type="radio" name="x101" value="2">
<input id="x101_3" type="radio" name="x101" value="3" checked="checked">
<br /><br />
<button type="button" onclick="WhatsChecked()">Whats Checked?</button>

- JavaScript的

function WhatsChecked() {
 var radCk = document.body.querySelectorAll('input[name="x101"]:checked')[0];
 alert(radCk.id);
 };

- 提琴手

fiddler