看完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'
答案 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');