【问题标题】:How do you get the checked value of asp:RadioButton with jQuery?如何使用 jQuery 获取 asp:RadioButton 的检查值?
【发布时间】:2010-12-05 04:45:24
【问题描述】:

我需要这样做:

<asp:RadioButton ID="rbDate" runat="server" Text="Date" GroupName="grpPrimary" />

并且能够在 jQuery 中检查单选按钮的选中值的值,但是我这样的尝试不会返回真/假。

if ($('[name=rbDate]').attr("Checked"))

if ($('[name=rbDate]').attr("Checked").val())

if ($('[name=rbDate]:checked').val())

有点帮助?​​

【问题讨论】:

    标签: c# asp.net jquery radio-button checked


    【解决方案1】:

    这可能是最简单的方法。 *= 在整个 id 属性中搜索 rbDate,它负责整个 ASP.NET id 修改。

    $('input[id*=rbDate]').is(":checked");
    

    【讨论】:

    • 我不明白。为什么在 ID 特定时使用 contains 属性过滤器?我错过了什么吗?
    • +1 顺便说一句,来自我。这个答案是完全有效的,但如果你不需要匹配部分 id 会很快。
    • @karim79 - 这是一个呈现的 ASP.NET 控件,这意味着呈现的 id 将被修改以包含该控件之上的所有父控件的 id。
    • @Andrew Hare - 天哪,我只是不擅长 ASP.NET。我很困惑。很抱歉发送垃圾邮件。
    • @karim79 - 哈哈,不用担心 :)
    【解决方案2】:

    虽然ChaosPandion's answer 可以工作,但将RadioButtonList 包装在这样的div 中会更快:

    <div id="dateWrapper">
        <asp:RadioButton 
            ID="rbDate" 
            runat="server" 
            Text="Date" 
            GroupName="grpPrimary" />
    </div>
    

    那么你的 jQuery 代码就可以这么简单:

    var selected = $("#dateWrapper input:radio:checked");
    

    【讨论】:

    • 这是一个很好的解决方案,但在大多数情况下,您甚至不会注意到速度差异。
    • 对于更简单(但不是更短)的 jQuery 的额外 div 对我正在做的事情来说并不是一个很好的权衡。不过,谢谢你的想法!
    【解决方案3】:

    INamingContainer 在实际 html 的 id 开头添加了一堆东西。

    $('input[id$=rbDate]').attr('checked')
    

    使用选择器上的 [id$=rbDate] 位告诉 jQuery 您希望输入的 id 以 rbDate 结尾

    现在,如果您想要获取整个列表的选定值,您可以执行类似

    的操作
    $('input[name$=rbDate]:checked').val()
    

    其中,被选中的项目之一将返回该单选按钮列表中选中的 或 的值。

    【讨论】:

      【解决方案4】:

      这是我使用 asp.net ID 的 JQuery 解决方案:

      var rbSelected =  $("#<%= rbDate.ClientID %>").is(":checked"); 
      

      【讨论】:

        猜你喜欢
        • 2012-06-12
        • 1970-01-01
        • 1970-01-01
        • 2016-08-31
        • 2021-09-27
        • 1970-01-01
        • 2010-11-08
        • 1970-01-01
        • 2019-05-29
        相关资源
        最近更新 更多