读取radiobutton列表的值

时间:2013-09-24 05:09:57

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

我有相同ID的单选按钮列表。我正在尝试读取每个单选按钮的值,但我的代码始终只读取第一个单选按钮的值。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
    $(document).ready(function () {
        $("#rdodoc").click(function () {
            var val = $("[id=rdodoc]").val()
            alert(val);
        });


    });
</script>


@foreach (ReadWord.Models.Document item in ViewBag.lstdocs)
{
    @Html.RadioButton("rdodoc", item.Name)
    <label>@item.Name</label>


}

4 个答案:

答案 0 :(得分:2)

而不是id使用class="rdodoc",这是正确的做法

$(document).ready(function () {
    $(".rdodoc").click(function () {
        var val = $(this).val()
        alert(val);
    });
});

使用上面的代码,当您单击单选按钮时,它的值将被警告

答案 1 :(得分:0)

具有相同id的许多元素是无效的html。此外,您的选择器会将click事件绑定到只有一个元素。改为使用类,如下所示:

<script>
    $(document).ready(function () {
        $(".rdodoc").click(function () {
            var values = $('.rdodoc').map(function(e) { return $(this).val(); });
            $.each(values, function(e, v) { alert(v); });
        });
    });
</script>

@foreach (ReadWord.Models.Document item in ViewBag.lstdocs)
{
    @Html.RadioButton("rdodoc", item.Name, new { @class = "rdodoc" })
    <label>@item.Name</label>
}

答案 2 :(得分:0)

元素的ID应该是唯一的。重复的ID将使您的html文档无效,并且通过ID访问这些元素将仅返回找到的第一个元素。如果要对单选按钮进行分组,请使用name属性进行分组。然后,要获取值,您可以使用其唯一ID进行迭代。

答案 3 :(得分:0)

您还需要在javascript中运行循环。 现在你只获得1个值,这就是你看到第一个值的原因。 并将id更改为name或class。

$( ".rdodc" ).each(function( index ) {
  alert( index + ": " + $( this ).val() );
});

这将提醒每个单选按钮值。