Tôi đã thử nhiều cách khác nhau để xác định SelectedValue của RadioButtonList trong Javascript mà không có niềm vui. Sau đó, tôi đã xem HTML của trang web và nhận ra rằng ASP.NET hiển thị một điều khiển RadioButtonList đến một trang web dưới dạng một bảng HTML một cột!
<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>
Để truy cập vào một ListItem riêng lẻ trên RadioButtonList qua Javascript, bạn cần tham chiếu nó trong điều khiển con của ô (được gọi là nút trong Javascript) trên hàng có liên quan. Mỗi ListItem được trả về thành phần tử đầu tiên (không) trong ô đầu tiên (số không) trên hàng của nó.
Ví dụ này vòng qua các RadioButtonList để hiển thị 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
}
}
Để chọn mục cuối cùng trong RadioButtonList, bạn sẽ làm điều này:
rdolst.rows[rdolst.rows.length - 1].cells[0].childNodes[0].checked = true;
Vì vậy, tương tác với một RadioButtonList trong Javascript rất giống với làm việc với một bảng thông thường. Giống như tôi nói tôi đã thử hầu hết các giải pháp khác ngoài kia nhưng đây là giải pháp duy nhất phù hợp với tôi.
Câu trả lời này hoạt động tốt nhất nếu bạn không biết có bao nhiêu nút radio bạn sẽ hiển thị trên trang. Cảm ơn! –
Tôi đã thực sự hy vọng cho một câu trả lời đơn giản hơn, nhưng tôi đã không thể tìm thấy bất cứ điều gì tốt hơn – TruthOf42
cảm ơn bạn rất nhiều! đã giúp tôi để ngăn chặn sự nhầm lẫn của tôi :) –