如何使用 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 的检查值?的主要内容,如果未能解决你的问题,请参考以下文章