我已经尝试了各种方法来确定 Javascript 中的 RadioButtonList 的 SelectedValue,但没有任何乐趣。然后我查看了网页的 HTML,发现 ASP.NET 将 RadioButtonList 控件作为单列 HTML 表格呈现给网页!
<table id="rdolst" border="0">
<tr>
<td><input id="rdolst_0" type="radio" name="rdolst" value="Option 1" /><label for="rdolst_0">Option 1</label></td>
</tr>
<tr>
<td><input id="rdolst_1" type="radio" name="rdolst" value="Option 2" /><label for="rdolst_1">Option 2</label></td>
</tr>
</table>
要通过 Javascript 访问 RadioButtonList 上的单个 ListItem,您需要在相关行的单元格的子控件(在 Javascript 中称为节点)中引用它。每个 ListItem 都呈现为其行上第一个(零)单元格中的第一个(零)元素。
此示例循环遍历 RadioButtonList 以显示 SelectedValue:
var pos, rdolst;
for (pos = 0; pos < rdolst.rows.length; pos++) {
if (rdolst.rows[pos].cells[0].childNodes[0].checked) {
alert(rdolst.rows[pos].cells[0].childNodes[0].value);
//^ Returns value of selected RadioButton
}
}
要选择 RadioButtonList 中的最后一项,您可以这样做:
rdolst.rows[rdolst.rows.length - 1].cells[0].childNodes[0].checked = true;
因此,在 Javascript 中与 RadioButtonList 交互非常类似于使用常规表格。就像我说的那样,我已经尝试了大多数其他解决方案,但这是唯一适合我的解决方案。