单选按钮选中属性

6

我的页面上有三个单选按钮,我想在点击 <li> 时选中单选按钮。我的单击函数可以工作,但是单选按钮没有被选中。我该怎么做?以下是我的代码:

$(document).ready(function() {         
     $('#myContainer li').click(function() {
        $('#radio1').attr('checked');            
      });     
});    

<div id="myContainer">
    <li id="li1">
      <input id="radio1" name="RadioGroup" value="val1"  type="radio">
    val1
    </li>  
    <li id="li2">
      <input id="radio2" name="RadioGroup" value="val2"  type="radio">
       val2
    </li>
    <li id="li3">
      <input id="radio3" name="RadioGroup" value="val3" type="radio">
      val3
    </li>
</div>
2个回答

19

你正在获取checked属性而不是设置它。尝试使用以下代码:

$('#radio1').attr('checked', 'checked');  

注意

自从jQuery 1.6版本以后,建议使用.prop()代替.attr()

$("#radio1").prop("checked", true);

1
值得一提的是,在更新的jQuery版本中,应该使用.prop()而不是.attr() - Shadow The Spring Wizard
具体来说,使用prop("checked", true)而不是attr("checked", "checked") - Frédéric Hamidi

2
$('#radio1').attr('checked')'

将返回值,若要设置值,请尝试

$('#myContainer li').click(function() {
        $('#radio1').attr('checked','checked');            
      });

或者如果您正在使用jquery 1.6+,请使用prop

$('#myContainer li').click(function() {
            $('#radio1').prop('checked',true);            
          });

演示

在您的情况下,无论单击哪个li,它都将检查id为#radio1的单选按钮。


我认为更合适的行为是

$('#myContainer li').click(function() {
    $(":input",this).prop('checked',true);            
          });

演示


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接