jQuery中单选按钮未被选中

54

我有这样一行用于页面加载的代码:

if ($("input").is(':checked')) {

当单选按钮输入被选中时,它可以正常工作。然而,我想要相反的结果。

if ($("input").not(.is(':checked'))) {

当没有单选按钮被选中时,使我的if语句运行。如何最好地实现这一点?

7个回答

68
if ( ! $("input").is(':checked') )

无法运行?

您可以尝试像这样迭代元素:

var iz_checked = true;
$('input').each(function(){
   iz_checked = iz_checked && $(this).is(':checked');
});
if ( ! iz_checked )

1
您还可以通过这组单选按钮共享的名称属性来过滤该列表。 - Nathan Long
3
如果 ( !($("input").is(':checked')) ) 。 我会添加额外的括号以使其更好。 - Roko C. Buljan

26
if ($("input").is(":not(:checked)"))

据我所知,这应该可以正常工作,已经针对最新稳定版的jQuery(1.2.6)进行了测试。


10
如果我的Firebug分析器正常工作(而且我知道如何使用它),那么这段代码:
$('#communitymode').attr('checked')
比...更快。
$('#communitymode').is('checked')

你可以在这个页面上尝试 :)

然后你可以像这样使用它

if($('#communitymode').attr('checked')===true) { 
// do something
}

8
$("input").is(":not(':checked')"))

这是jQuery 1.3版本,请注意单引号和双引号的使用!


7
$('input:radio[checked=false]');

这也可以运行。
input:radio:not(:checked)

或者
:radio:not(:checked)

1
这肯定会起作用。我花了一些时间才弄明白。这是最优雅的方法,而不需要编写任何代码。 - Antwan
1
在我看来,作为选择器也非常好用。 - Petro Semeniuk

0
(!$('#radio').is(':checked'))

这对我有用


-1

这也可以。它似乎是最短的工作符号: !$('#selector:checked')


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接