您的位置:首页 > 其它

解决checkbox的attr(checked)一直为undefined问题

2015-10-15 11:19 246 查看
 原来项目里的多选一直好使,后来换成bootstrap后就不好使了,发现是更改了jq,升级导致的

检查代码发现,原来的代码

//全选/取消
$("#check").click(function(){
if($(this).attr("checked")=="checked"){
setCheckbox(true);
}else{
setCheckbox(false);
}

});

经过查找资料发现
原资料网址
http://www.jb51.net/article/51136.htm
原来,在jquery1.6版本便对此做出了修改: 

【checked属性在页面初始化的时候已经初始化好了,不会随着状态的改变而改变。 

也就是说如果checkbox在页面加载完毕是选中的,那么返回的永远都是checked(我的一开始就是没选中) 

如果一开始没被选中,则返回的永远是undefined !】 

既然jquery对此做出了修改,那肯定也就是有相应的更好的解决方法: 

.prop()便是解决这个问题的利器! 

具体用法如下: 

alert($("#checkbox_all").prop("checked")); 
此时就会变成true或者false啦~~ 

改编后的代码

//全选/取消
$("#check").click(function(){
var is_checked = $(this).prop("checked");
if(is_checked==true){
setCheckbox(true);
}else{
setCheckbox(false);
}

});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: