checkbox属性checked="checked"已有,但却不显示打勾的解决办法

在做名单分配的时候,做了一个功能,就是当勾选栏目,把所有的权限全勾上。之前写过类似的代码,直接复制到本项目中使用,发现第一次全选或取消时有效果,再次点击在源码中已添加checked属性,但是并不显示打勾状态。

看Jquery手册上说1.6以下版本在IE6使用JQuery的removeAttr方法删除disabled是无效的。解决的方法就是使用$("XX").prop("disabled",false);这里我都用1.11的版本了,不管那么多了,死马当活马医就用这个方法试试。

$(function(){
    $("#selectAll").click(function () { 
       $("#list input[type=checkbox]").prop("checked", true);   
    }); 

    $("#unSelect").click(function () {   
       $("#list input[type=checkbox]").prop("checked", false);   
    });

    $("#reverse").click(function () {  
        $("#list input[type=checkbox]").each(function () {   
            $(this).prop("checked", !$(this).prop("checked"));   
        }); 
        allchk(); 
    });


    $('#all-partner').click(function(){
        if($('#sub-item-1').css('display')=='none'){
            $('#sub-item-1').show();
        }else{
            $('#sub-item-1').hide();
        }
    })

    $('#auth-btn').click(function(){
        if($('#sub-item-2').css('display')=='none'){
            $('#sub-item-2').show();
        }else{
            $('#sub-item-2').hide();
        }
    })
})

function allchk(){ 
    var chknum = $("#list input[type=checkbox]").size();//选项总个数 
    var chk = 0; 
    $("#list input[type=checkbox]").each(function () {   
        if($(this).attr("checked")==true){ 
            chk++; 
        } 
    });
}

写成这样,问题解决,估计手册上说的修复只修复了一遍,之后还是会出问题,所以最保险的还是用prop。

Tags: jquery

添加新评论