日期:2014-05-16  浏览次数:20381 次

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中是可以的。。求助。。

------解决方案--------------------
HTML code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>

<input type="checkbox" class="chk" />
<input type="checkbox" class="chk" />
<input type="checkbox" class="chk" />
<input type="checkbox" class="chk" />
<input type="checkbox" class="chk" />
<input type="checkbox" class="chk" /><br /><br />

全选/反选<input type="checkbox" onclick="select_all(this, 'chk');" />

<script type="text/javascript">
function select_all(obj, clsName) {
    var chkObj = document.getElementsByTagName('input');
    for (var i = 0; i < chkObj.length; i ++) {
        if (chkObj[i].className == clsName) chkObj[i].checked = obj.checked;
    }
}
</script>

</body>
</html>