Я пробовал различные способы определения SelectedValue RadioButtonList в Javascript без радости. Затем я посмотрел на 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>
Для доступа к отдельным ListItem на RadioButtonList через Javascript, вы должны ссылаться на него в дочерних элементов управления в клеточных (известный как узлы 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;
Так взаимодействуя с RadioButtonList в Javascript очень похоже на работу с обычной таблицей. Как я уже сказал, я пробовал большинство других решений, но это единственное, что работает для меня.
Этот ответ работает лучше всего, если вы не знаете, сколько радиокнопок вы выведете на странице. Спасибо! –
Я действительно надеялся на более простой ответ, но мне не удалось найти ничего лучшего – TruthOf42
большое вам спасибо! помог мне остановить мое замешательство :) –