I am trying to check radio. Neither the following works:
[edit]
$(\'selector\').attr(\'checked\',\'checked\');
$(\'selector\').attr(\'checked\',true)
It works, but
$('input[name="myname"][checked]').val()
will return the value of the first element with attribute checked
. And the a
radio button still has this attribute (and it comes before the b
button). Selecting b
does not remove the checked
attribute from a
.
You can use jQuery's :checked:
$('input[name="myname"]:checked').val()
DEMO
Further notes:
$('b').attr('checked',true);
is enough.$("input:radio").attr("checked",true); //for all radio inputs
or
$("your id or class here").attr("checked",true); //for unique radios
equally the same works for ("checked","checked")
$('.checkbox').prop('checked',true);
$('.checkbox').prop('checked',false);
... works perfectly with jquery1.9.1
$('.checkbox').attr('checked',true);
will not work with from jQuery 1.6.
Instead use
$('.checkbox').prop('checked',true);
$('.checkbox').prop('checked',false);
Full explanation / examples and demo can be found in the jQuery API Documentation https://api.jquery.com/attr/
I don't think you can call
$.attr('checked',true);
because there is no element selector in the first place. $ must be followed by $('selector_name'). GOod luck!
With jQuery, never use inline onclick
javascript. Keep it unobtrusive. Do this instead, and remove the onclick
completely.
Also, note the use of the :checked
pseudo selector in the last line. The reason for this is because once the page is loaded, the html and the actual state of the form element can be different. Open a web inspector and you can click on the other radio button and the HTML will still show the first one is checked. The :checked
selector instead filters elements that are actually checked, regardless of what the html started as.
$('button').click(function() {
alert($('input[name="myname"][value="b"]').length);
$('input[name="myname"][value="b"]').attr('checked','checked');
$('#b').attr('checked',true);
alert($('input[name="myname"]:checked').val());
});
http://jsfiddle.net/uL545/1/