我有3个单选按钮在我的网页,如下所示:
<标签=“主题灰色”>
<输入类型=“无线电” id=“主题-灰色” 名称=“主题” 值=“灰色” />灰色</label>
<标签=“主题粉红色”>
<输入类型=“收音机” id=“主题-粉红色” 名称=“主题” 值=“粉红色” />粉红色</label>
<标签=“主题绿色”>
<输入类型=“无线电” id=“主题-绿色” 名称=“主题” 值=“绿色” />绿色</label>
在jQuery中,我想在单击这三个按钮中的任何一个时获得所选单选按钮的值。在jQuery中,我们有id(#)和类(.)选择器,但如果我想找到一个单选按钮的名字,如下所示?
$("<radiobutton name attribute>").click(function(){});
请告诉我如何解决这个问题。
我是在研究jQuery从1.7.2升级到1.8.2后的一个错误时发现这个问题的。我添加我的答案是因为jQuery 1.8及更高版本已经改变了这个问题的回答方式。
在jQuery 1.8中,他们已经弃用了伪选择器,如:radio,:checkbox,:text。
要完成上述操作,现在只需将:radio替换为[type=radio]。
所以你的答案现在变成了所有版本的jQuery 1.8及以上:
$("input[type=radio][name=theme]").click(function() {
var value = $(this).val();
});
在附加信息部分的:radio选择器页面上,您可以阅读1.8自述文件上的更改和此更改的特定票据,并了解更改的原因。
您可能注意到使用类选择器来获取ASP的值。NET RadioButton控件总是空的,这是原因。
在ASP中创建RadioButton控件。的网址如下:
<asp:RadioButton runat="server" ID="rbSingle" GroupName="Type" CssClass="radios" Text="Single" />
<asp:RadioButton runat="server" ID="rbDouble" GroupName="Type" CssClass="radios" Text="Double" />
<asp:RadioButton runat="server" ID="rbTriple" GroupName="Type" CssClass="radios" Text="Triple" />
和ASP。NET渲染以下HTML为您的RadioButton
<span class="radios"><input id="Content_rbSingle" type="radio" name="ctl00$Content$Type" value="rbSingle" /><label for="Content_rbSingle">Single</label></span>
<span class="radios"><input id="Content_rbDouble" type="radio" name="ctl00$Content$Type" value="rbDouble" /><label for="Content_rbDouble">Double</label></span>
<span class="radios"><input id="Content_rbTriple" type="radio" name="ctl00$Content$Type" value="rbTriple" /><label for="Content_rbTriple">Triple</label></span>
ASP。NET我们不想使用RadioButton控件名称或id,因为它们可以出于任何原因改变用户的手(改变容器名称,表单名称,用户控件名称,…),你可以在上面的代码中看到。
使用jQuery获得RadioButton值的唯一可行的方法是使用css类,这是一个完全无关的问题,如下所述的答案
$('span.radios input:radio').click(function() {
var value = $(this).val();
});