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> <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>