Sunday, March 6, 2011

Radio buttons not checked in jQuery

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?

From stackoverflow
  • 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 )
    
    Nathan Long : You might also filter that list by the name attribute this group of radio buttons share.
  • if ($("input").is(":not(:checked)"))
    

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

  • 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
    }
    
  • $("input").is(":not(':checked')"))
    

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

  • $('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.

0 comments:

Post a Comment