JS写的checkbox全选为什么在IE8中有BUG--求助
function select_all(obj, cName) {
var checkObj = document.all(cName);
for ( var i = 0; i < checkObj.length; i++) {
if (obj.checked) {
checkObj[i].checked = true;
} else {
checkObj[i].checked = false;
}
}
//o = document.getElementsByName(cName);
// for ( var i = 0; i < o.length; i++) {
// o[i].checked = obj.checked;
// }
// for (i = 0; i < o.length; i++) {
// o[i].checked = event.srcElement.checked;
// }
// for (i = 0; i < tag.length; i++) {
// if (tag[i].type == "checkbox") {
// if (c.checked) {
// tag[i].checked = true;
// } else {
// tag[i].checked = false;
// }
// }
// }
// if (c.checked) {
// for (i = 0; i < o.length; i++) {
// o[i].checked = true;
//}
//}else {
// for (i = 0; i < o.length; i++) {
// o[i].checked = false;
// }
// }
}
用了几种方法写,都大同小异,在IE8中点全选的checkbox之后所有的选项都不自动选中,要点下鼠标才能选中,不知道是什么原因,但是在IE9中是可以的。。求助。。
------解决方案--------------------
看看你的name是怎么传的?
我写了段,跟你差不多IE8下完全没问题的啊。
HTML code
<html>
<script>
function checkedAll(obj, sName){
var objs = document.getElementsByName(sName);
if(obj.checked){
for(var i = 0; i < objs.length; i++){
objs[i].checked = true;
}
}else{
for(var i = 0; i < objs.length; i++){
objs[i].checked = false;
}
}
}
</script>
<body>
<input type="checkbox" id="selectAll" onclick="checkedAll(this, 'select')"/>all
<input type="checkbox" id="select" />1
<input type="checkbox" id="select" />2
<input type="checkbox" id="select" />3
<input type="checkbox" id="select" />4
</body>
</html>