jQuery set radio button
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.
Solution 1:
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
Solution 2:
I found the answer here:
https://web.archive.org/web/20160421163524/http://vijayt.com/Post/Set-RadioButton-value-using-jQuery
Basically, if you want to check one radio button, you MUST pass the value as an array:
$('input:radio[name=cols]').val(['Site']);
$('input:radio[name=rows]').val(['Site']);
Solution 3:
In your selector you seem to be attempting to fetch some nested element of your radio button with a given id. If you want to check a radio button, you should select this radio button in the selector and not something else:
$('input:radio[name="cols"]').attr('checked', 'checked');
This assumes that you have the following radio button in your markup:
<input type="radio" name="cols" value="1" />
If your radio button had an id:
<input type="radio" name="cols" value="1" id="myradio" />
you could directly use an id selector:
$('#myradio').attr('checked', 'checked');
Solution 4:
You can try the following code:
$("input[name=cols][value=" + value + "]").attr('checked', 'checked');
This will set the attribute checked for the radio columns and value as specified.