检查是否选中了特定的单选按钮

时间:2010-02-03 20:20:23

标签: jquery radio-button

看完jQuery文档后我遇到了麻烦。我只是试图在我的jquery方法中返回true / false,具体取决于对某个radiobutton的检查以及是否选择了

我尝试了几件事,但未能做到这一点:

<input type="radio" runat="server" name="testGroup" id="test1" /><label for="<%=test1.ClientID %>" style="cursor:hand" runat="server">Test1</label>
<input type="radio" runat="server" name="testGroup" id="test2" /><label for="<%=test2.ClientID %>" style="cursor:hand" runat="server">Test2</label>
<input type="radio" runat="server" name="testGroup" id="test3" /> <label for="<%=test3.ClientID %>" style="cursor:hand">Test3</label>

在我的方法中我有这个:

return $("input[@name='test2']:checked");

我在$("input[@name='test2']:checked");

上得到了一个未定义的内容

更新:

示例:

<input type="radio" runat="server" name="radioGroup"  id="payPalRadioButton" value="paypalSelected" /> 

这仍然会返回'undefined':

$("input[@name=radioGroup]:checked").attr('payPalRadioButton'); 

如果我试试这个,即使我选择了单选按钮,我也会'假':

$('input:radio[name=radioGroup]:checked').val() == 'paypalSelected'

7 个答案:

答案 0 :(得分:72)

您的选择器不会选择输入字段,如果是,它将返回一个jQuery对象。试试这个:

$('#test2').is(':checked'); 

答案 1 :(得分:6)

我认为你正在使用错误的方法。您应该设置输入元素的value属性。检查the docs for .val()以获取设置和返回输入元素的.val()的示例。

<input type="radio" runat="server" name="testGroup" value="test2" />

return $('input:radio[name=testGroup]:checked').val() == 'test2';

答案 2 :(得分:4)

1.您不再需要属性名称的@前缀:

http://api.jquery.com/category/selectors/attribute-selectors/

  

注意:在jQuery 1.3 [@attr]样式中   选择器被删除(他们是   以前在jQuery 1.2中弃用的)。   只需删除您的“@”符号即可   选择器,以使它们工作   试。

2.您的选择器按name查询单选按钮,但该属性未在HTML结构中定义。

答案 3 :(得分:0)

你应该在'name'之前删除'@';它不再需要了(对于当前的jQuery版本)。

您想要返回名称为“test2”的所有已检查元素,但您没有任何具有该名称的元素,而您使用的是 id 的“test2”。

如果您要使用ID,请尝试:

return $('#test2').attr('checked');

答案 4 :(得分:0)

对于所有花哨的选择者,还有什么困扰?如果你正确使用那些id =“”属性,那么'test2'必须是页面上唯一带有该id的标签,然后.checked布尔属性会告诉你它是否被选中:

if ($('test2').checked) {
    ....
}

您也没有为这些单选按钮设置任何值,因此无论您选择哪个按钮,您只需将一个空白的“testGroup =”提交给服务器。

答案 5 :(得分:0)

$("input[@name='<%=test2.ClientID%>']:checked");

使用此处和此处的ClientID获取.net。

创建的随机ID

答案 6 :(得分:0)

只是为其他人找到了合适的工作解决方案,

// Returns true or false based on the radio button checked
$('#test1').prop('checked')


$('body').on('change','input[type="radio"]',function () {
alert('Test1 checked = ' + $('#test1').prop('checked') + '. Test2 checked = ' + $('#test2').prop('checked') + '. Test3 checked = ' + $('#test3').prop('checked'));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<input type="radio" runat="server" name="testGroup" id="test1" /><label for="<%=test1.ClientID %>" style="cursor:hand" runat="server">Test1</label>

<input type="radio" runat="server" name="testGroup" id="test2" /><label for="<%=test2.ClientID %>" style="cursor:hand" runat="server">Test2</label>

<input type="radio" runat="server" name="testGroup" id="test3" /> <label for="<%=test3.ClientID %>" style="cursor:hand">Test3</label>

在您的方法中,您可以使用

return $('#test2').prop('checked');