原来项目里的多选一直好使,后来换成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);
}
});