我正在填充下面的列表单选按钮。
<td>
@if (ViewBag.myList as System.Collections.IEnumerable != null)
{
foreach (var aType in new SelectList(ViewBag.myList as System.Collections.IEnumerable, "Value", "Text", new { TabIndex = 0 }))
{
@Html.RadioButton("rdoMyList", aType.Value)
@Html.Label(aType.Text)
}
}
</td>
我在jQuery中获得所选单选按钮的值,如下所示。
var selectedValue = $.trim($("[id^='rdoMyList']:checked").val());
我似乎无法弄清楚的是获取所选单选按钮的显示文本。
答案 0 :(得分:1)
我假设通过&#39;显示文字&#39;你的意思是与所选无线电相邻的label
元素的文本。为此,您需要使用next()
。试试这个:
$('input[type="radio"]').change(function() {
var $radio = $(this);
var selectedValue = $radio.val();
var labelText = $radio.next('label').text();
// do something with your variables here...
});
您可以改进input[type="radio"]
选择器,通过向其添加类来缩小要定位的元素。
答案 1 :(得分:1)
您可以尝试这样做:为单选按钮添加更改事件处理程序,并获取标签辅助文本。
注意 - 假设标签位于每个单选按钮旁边
$(function(){
$("[id^='rdoMyList']").change(function(){
alert($(this).next('label').text());
});
});
答案 2 :(得分:0)
单选按钮没有分配文字。您可以将标签文本分配给选中的单选按钮。
var text = $("input:checked + label").text();
+表示相邻的选择器。它只会选择一个标签,旁边有一个选中的输入。
希望这有帮助