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