如何使用 jQuery 获取 asp:RadioButton 的检查值?

Posted

技术标签:

【中文标题】如何使用 jQuery 获取 asp:RadioButton 的检查值?【英文标题】:How do you get the checked value of asp:RadioButton with jQuery? 【发布时间】: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())

有点帮助?​​

【问题讨论】:

【参考方案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"); 

【讨论】:

以上是关于如何使用 jQuery 获取 asp:RadioButton 的检查值?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jQuery 获取多个选择框值?

如何使用 jQuery 从 URL 中获取端口号?

如何使用 jQuery 从 URL 中获取端口号?

如何使用 jQuery 获取当前时间

如何使用 jQuery 验证插件获取提交按钮的引用?

如何使用Jquery获取当前节点的孙节点