如果选中第一个复选框,则更改复选框attr

时间:2014-01-21 15:53:11

标签: jquery

我想通过检查是否选中第一个复选框来显示/隐藏复选框。

代码:

$j('#main_share').bind("click", function() {

        if( $j(this).is(':checked') ) {
            //check ext_share box
            $j('#allow_ext_share').attr('checked', true);
            //show ext_share box    
            $j('#ext_share_li').show(); 

        } else {

            //hide ext_share box    
            $j('#ext_share_li').hide(); 
            //uncheck ext_share box
            $j('#allow_ext_share').attr('checked', false); 
        }                       

});

当我取消选中框时,按预期工作,但是如果我重新检查它,复选框会再次显示,但仍未选中?

问题:如何再次显示复选框时如何选中。

2 个答案:

答案 0 :(得分:4)

你应该使用prop而不是attr:

$j('#allow_ext_share').prop('checked', true);
//Later
$j('#allow_ext_share').prop('checked', false); 

还可以将代码减少到:

$j('#main_share').bind("click", function() {
    $j('#allow_ext_share').prop('checked', this.checked); 
    $j('#ext_share_li').toggle(this.checked);   
});

答案 1 :(得分:0)

attr更改为prop

$j('#allow_ext_share').prop('checked', true);