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。