[code]
<html>
<head>
<script language="javascript">
function check(){       
var len=form1.DocumentIds.length;
var flag = false;
for(var i=0;i<len;i++){
if(form1.DocumentIds[i].checked==true){
flag = true;
break;
}
}
if(flag){
form1.action="/liuyan/servlet/ListServlet?key=delete"
form1.submit();
}else{
alert("请选择要删除的文档!");
}
}   
</script>
</head>
<body>
<form name="form1" action="" method="post">
<input type="button" value="删除文档" onclick="check()"><br>
<INPUT TYPE="checkbox" NAME="DocumentIds" VALUE="1">1
<form>
</body>
</html>
[/code]上面那个js是判断至少要有一个复选框被选中,我的复选框个数是动态的,如果是多个复选狂这个js就没问题,
但是,如果只有一个复选框就无法验证了,不管你选不选都会弹出alert("请选择要删除的文档!");
怎么解决呀,高手帮帮忙,谢谢!!!

解决方案 »

  1.   

    <html>
    <head>
    <script language="javascript">
    function check(){       
    var len=form1.DocumentIds.length;
    alert(len);
    var flag = false;
    if(len==undefine)
    for(var i=0;i<len;i++){
    if(form1.DocumentIds[i].checked==true){
    flag = true;
    break;
    }
    }
    if(flag){
    form1.action="/liuyan/servlet/ListServlet?key=delete"
    alert("ok");
    }else{
    alert("请选择要删除的文档!");
    }
    }   
    </script>
    </head>
    <body>
    <form name="form1" action="/liuyan/servlet/ListServlet" method="post">
    <input type="button" value="删除文档" onclick="check()"><br>
    <INPUT TYPE="checkbox" NAME="DocumentIds" VALUE="1">1
    <form>
    </body>
    </html>
    刚才没发上代码。
      

  2.   

    不太明白你的意思  你可以定义一个变量来标记  给动态生成的checkbox 定义onchange事件  在其中的方法修改标记值来验证
      

  3.   

    这种问题 自己到 baidu去搜索 "checkbox js 验证" 有很多 
    下面的是参考,不要急着答案,要知道方法
    http://xbd008.blog.163.com/blog/static/361549352008101842418744/
      

  4.   

    把所有的复选框名字都设置一样的,
    然后在JSvar obj=dcoument.getElementsByName("items");
    int j=0;
    for(var i=0;i<obj.length;i++){
      if(obj[i].checked){
         //如果有一个选中的话,则退出
         j++;
         break;
      }
    }if(j<=0){
       alert("一个都没有选中");
       return;
    }