tags:

views:

17746

answers:

5

I have this line of code for page load:

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

and it works fine when the radio button input is checked. However, I want the opposite. Something along the lines of

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

so that my if statement runs when none of the radiobuttons are selected. What is the best way to go about this?

+13  A: 
if ( ! $("input").is(':checked') )

Doesn't work?

You might also try iterating over the elements like so:

var iz_checked = true;
$('input').each(function(){
   iz_checked = iz_checked && $(this).is(':checked');
});
if ( ! iz_checked )
singpolyma
You might also filter that list by the name attribute this group of radio buttons share.
Nathan Long
+4  A: 
if ($("input").is(":not(:checked)"))

AFAIK, this should work, tested against the latest stable jQuery (1.2.6).

Krof Drakula
+2  A: 

If my firebug profiler work fine (and i know how to use it well), this:

$('#communitymode').attr('checked')

is faster than

$('#communitymode').is('checked')

You can try on this page :)

And then you can use it like

if($('#communitymode').attr('checked')===true) { 
// do something
}
Ionut Staicu
+1  A: 
$("input").is(":not(':checked')"))

This is jquery 1.3, mind the ' and " signs!

yevgeny
A: 

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

this will also work

input:radio:not(:checked)

or

:radio:not(:checked)

Antwan
This will work for sure. Took me a while to figure out. It's the most elegant you can get without writing any code.
Antwan