jQuery set radio button

mike628 picture mike628 · Mar 1, 2012 · Viewed 262.8k times · Source

I am trying to set a radio button. I want set it by using the value or the id.

This is what I've tried.

$('input:radio[name=cols]'+" #"+newcol).attr('checked',true);

newcol is the id of the radio button.

Maybe a little edit is in order.

There are two sets of radio boxes one with cols and the other with rows. So I see the point in not using id's. My bad. So I have as an example:

<input type="radio" name="rows" class="listOfCols" 
   style="width: 50%; " value="Site"></input>

and

<input type="radio" name="cols" class="listOfCols" 
   style="width: 50%; "  value="Site"></input>

with the id's removed, and I need to set the correct one.

Answer

Jasper picture Jasper · Mar 1, 2012

Your selector looks for the descendant of a input:radio[name=cols] element that has the id of newcol (well the value of that variable).

Try this instead (since you're selecting by ID anyway):

$('#' + newcol).prop('checked',true);

Here is a demo: http://jsfiddle.net/jasper/n8CdM/1/

Also, as of jQuery 1.6 the perferred method of altering a property is .prop(): http://api.jquery.com/prop