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> 