日期:2014-05-18  浏览次数:20716 次

JSP复选框全选的一个问题
下面是我写的一个简单的JSP页面代码:
<form   name= "form ">
          <input   type= "checkbox "   name= "id "   value= " "> 1
          <input   type= "checkbox "   name= "id "   value= " "> 2
          <input   type= "checkbox "   name= "id "   value= " "> 3
          <input   type= "checkbox "   name= "id "   value= " "> 4
          <input   type= "checkbox "   name= "chose "   value= " "   onclick= "selectAll() "> 全选
</form>
<script>
          function   selectAll()
          {
                  for(var   i=0;i <document.form.id.length;i++)  
                  {  
                        if(document.form.chose.checked)
                        document.form.id[i].checked=true;
                        else
                        document.form.id[i].checked=false;  
                  }                                  
            }
</script>

问题:   当名为”id“的复选框只有一个时无法实现全选的功能。因为id是从数据库读出来的,有
可能是只有一个值,但是也有可能是多个。多个时可以实现全选的功能,一个就不行。不知道是
什么原因,不懂解决;请有经验的高手帮忙下。

------解决方案--------------------
<form name= "form " ID= "Form1 ">
<input type= "checkbox " name= "id " value= " " ID= "Checkbox1 "> 1
<input type= "checkbox " name= "id " value= " " ID= "Checkbox2 "> 2
<input type= "checkbox " name= "chose " value= " " onclick= "selectAll() " ID= "Checkbox5 "> allselect
</form>
<script>
function selectAll()
{
if(!document.form.id.length){
if(document.form.chose.checked){
document.form.id.checked=true;
}
else{
document.form.id.checked=false;
}
}
else{
for(var i=0;i <document.form.id.length;i++){
if(document.form.chose.checked){
document.form.id[i].checked=true;
}
else{
document.form.id[i].checked=false;
}
}
}
}
</script>
即可!
------解决方案--------------------
只有一个的时候就不要用全选好了,因为这时候document.form.id.length是未定义的,会出错,加一个判断,在单个的时候不显示全选:
<form name= "form ">
<input type= "checkbox " name= "id " value= " "> 1
<input type= "checkbox " name= "id " value= " "> 2
<input type= "checkbox " name= "id " value= " "> 3
<input ty