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

一个关于复选框全选或取消的javascript问题?请高手救我啊,我要崩溃了!!
html文档代码如下:
<html>
<head>
<script language="JavaScript">
//CheckBox全选
function selectAll(formName,cbName)
{
var o=document.forms[formName].elements[cbName];
if(o.length)
{//判断是否只有一项
for(i=0;i<o.length;i++)
{
document.form[formName].elements[cbName][i].checked=true;
}
else
{
o.checked=true;
}
}
}
//CheckBox取消全选
function unSelectAll(formName,cbName)
{
var o=document.forms[formName].elements[cbName];
if(o.length)
{//判断是否只有一项
for(i=0;i<o.length;i++)
{
document.form[formName].elements[cbName][i].checked=false;
}
else
{
o.checked=false;
}
}
}
  </script>
</head>
<body>
<form name="f1">
<input type="checkbox" name="interest" value="1">旅游<br>
<input type="checkbox" name="interest" value="2">音乐<br>
<input type="checkbox" name="interest" value="3">运动<br>
<input type="button" value="全选" onclick="selectAll('f1','interest')">
<input type="button" value="取消全选" onclick="unSelectAll('f1','interest')">
</form>
</body>
</html>
点击全选按钮和取消全选按钮都不起作用。高手请帮帮忙啊!
javascript问题 复选框全选或取消 HTML CheckBox

------解决方案--------------------
两个问题,一个是你有一个}号标错地方,具体在else前后,所以js无法解释,良好的代码习惯可减少这方面问题。
另外document.forms[formName].elements不是一个方法,而直接是一组对象,直接遍历就好。

function selectAll(formName,cbName){
var o=document.forms[formName].elements;
for(var i=0;i<o.length;i++){
if(o[i].name==cbName){
o[i].checked=true;
}
}
}

//CheckBox取消全选
function unSelectAll(formName,cbName){
var o=document.forms[formName].elements;
for(var i=0;i<o.length;i++){
if(o[i].name==cbName){
o[i].checked=false;
}
}
}

------解决方案--------------------


<html>
<head>
<script language="JavaScript">
function selectAll(formName,cbName,checked){
    var o=document.forms[formName].elements;
    for(var i=0;i<o.length;i++){
        if(o[i].name==cbName){
            o[i].checked=checked;
        }
    }
}
  </script>
</head>
<body>
<form name="f1">
<input type="checkbox" name="interest" value="1">旅游<br>
<input type="checkbox" name="interest" value="2">音乐<br>
<input type="checkbox" name="interest" value="3">运动<br>
<input type="button" value="全选" onclick="selectAll('f1','interest',true)">
<input type="button" value="取消全选" onclick="selectAll('f1','interest',false)">
</form>
</body>
<