<script>
function selectall(){
var i;
         window.alert(form1.ques.length);
for(i=0;i<form1.ques.length;i++){
if (form1.ques[i].type=="checkbox")
form1.ques[i].checked=true;
}
//ques表示checkbox组
}
</script>
<form name=form1>
<input type=checkbox name=ques value=a>
<input type=button name=ques value=selectall onclick=selectall()>
</form>

解决方案 »

  1.   

    将你的selectall修改一下:
    function selectall(){
    var i;
    if(form1.ques.checked){
    form1.ques.checked=true;
    }else{
    for(i=0;i<form1.ques.length;i++){     
    form1.ques[i].checked=true;
    }
    }
    //ques表示checkbox组
    }
      

  2.   

    如果checkbox只是一个时,是不会形成数组的,
    即: form1.ques.length 为undefined所以要先判断它的value;
    如value不为 undefined, 则是多个,如有,则是一个。
      

  3.   

    也可以这样写:
    function selectall(){
    var objs=document.getElementsByName("ques");
    for(var i=0;i<objs.length;i++){
    objs[i].checked=true;
    }
    }
      

  4.   

    or:<script>
    function selectall(){
    var i;
    es = document.form1.elements ;
    for(i=0;i<es.length;i++){
    if (es[i].type=="checkbox")
    es[i].checked=true;
    }
    //ques表示checkbox组
    }
    </script>
    <form name=form1>
    <input type=checkbox name=ques value=a>
    <input type=button name=b value=selectall onclick=selectall()>
    </form>
      

  5.   

    var chkname = document.form1.ques.length;
    if(chkname == null && document.form1.ques == null) return;
    if(chkname)
    {
    for(var i = 0;i< document.form1.ques.length;i++)
    {
    document.form1.ques[i].checked = true
    }
    }
    else
    document.form1.ques.checked = true