在jQuery中获取所选单选按钮的显示文本

时间:2015-03-24 07:49:46

标签: javascript jquery asp.net-mvc-4

我正在填充下面的列表单选按钮。

<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());

我似乎无法弄清楚的是获取所选单选按钮的显示文本。

3 个答案:

答案 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();

+表示相邻的选择器。它只会选择一个标签,旁边有一个选中的输入。

希望这有帮助