John S
John S

Reputation: 8331

Using jQuery to check if radio button is not checked

I am trying to add a class to the label of radio button. The class that is added varys depending on whether the button is selected or not. How do I test for a not checked status?

if (ui.item.Status) {
    $('input:radio[name="StatusType.Active"]')[0].checked = true;
} else {
    $('input:radio[name="StatusType.Active"]')[1].checked = true;
}
$('input:radio[name="StatusType.Active"]:checked').parent().addClass('btn-success');
$('input:radio[name="StatusType.Active"]:!checked').parent().addClass('btn-failure');

Upvotes: 1

Views: 969

Answers (4)

Amit Joki
Amit Joki

Reputation: 59232

You can do this instead by using function callback of addClass

var elem = $(':radio[name="StatusType.Active"]');
elem.parent().addClass(function(){
   return "btn-" + (elem.is(":checked") ? "success" : "failure");
});

Upvotes: 7

Pranav C Balan
Pranav C Balan

Reputation: 115222

Use not() method in jQuery

$('input:radio[name="StatusType.Active"]').not(':checked').parent().addClass('btn-failure');

Upvotes: 1

Neel
Neel

Reputation: 11731

something like :not :-

$('input:radio[name="StatusType.Active"]:not(:checked)').parent().addClass('btn-failure');

Upvotes: 0

T J
T J

Reputation: 43156

You can combine :checked selector with the is() method as follows:

var $checkbox = $('input:radio[name="StatusType.Active"]');
if($checkbox.is(':checked'))
   $checkbox.parent().addClass('btn-success');
else
   $checkbox.parent().addClass('btn-failure');

Upvotes: 1

Related Questions