为什么这个form表单验证不成功?

 function checkDelForm() {
        var uids  = -1;
        uids = document.getElementsByName("delUids").length;
        if (uids == -1) {
            alert("请选择要删除的用户");
            return false;
        } else {
            return true;
        }
    }
<form name="userform" action="servlet/DeleteUserServet" method="post"
    onsubmit="return checkDelForm()">
    <table align="center" border="1" width="440px">
        <tr>
            <td colspan="6" align="center">用户资料</td>
        </tr>
        <tr>
            <td align="center">用户姓名</td>
            <td align="center">用户性别</td>
            <td align="center">出生日期</td>
            <td align="center">用户住址</td>
            <td colspan=2 align="center">操作</td>
        </tr>
        <%
            while (rs.next()) {
        %>
        <tr>
            <td><%=rs.getString("uname")%></td>
            <td><%=rs.getString("usex")%></td>
            <td><%=rs.getString("ubirth")%></td>
            <td><%=rs.getString("uaddr")%></td>

            <td><a
                href="UserListDetail.jsp?uid=<%=rs.getInt("uid")%>&&uname=<%=rs.getString("uname")%>&&usex=<%=rs.getString("usex")%>&&ubirth=<%=rs.getString("ubirth")%>&&uaddr=<%=rs.getString("uaddr")%>">编辑</a>
            </td>
            <td><input type="checkbox" name="delUids"
                value="<%=rs.getInt("uid")%>"></td>
        </tr>

        <%
            }
            conn.close();
            rs.close();
            stmt.close();
        %>
        <tr>
            <td colspan="6" align="center"><input type="submit" value="删除"
                style="width: 82px; "> <font color="green"> ${msg} </font>
            </td>
        </tr>
    </table>
</form>

你只是判断delUids有多少个。而且也判断错了,是==0,不是==-1,改成下面的

    function checkDelForm() {
        var cbs = document.getElementsByName("delUids"), len = cbs.length, ok = false;
        for (var i = 0; i < len; i++)
            if (cbs[i].checked) {
                ok = true; break;
            }
        if (!ok) {
            alert("请选择要删除的用户");
            return false;
        } else {
            return true;
        }
    }

检查下UserListDetail.jsp的程序,传进去的值对不对

就不能用jquery吗? 有没有选中复选框不是这样判断的好吧

除了要判断个数,是不是还要检查一下每一项的是否正确

function checkDelForm() {
var uids = -1;
uids = document.getElementsByName("delUids");
len = uids.length;
var j = 0;
for(var i=0;i<len;i++){
if(uids[i].checked){
j++;
};
}
if (j == 0) {
alert("请选择要删除的用户");
return false;
} else {
return true;
}
}
脚本应该这么写,document.getElementsByName("delUids");返回的是所有name=delUids一个集合,要判断属性checked是否为true

使用perseInt()转化类型在比较试试。。。

你的uids的值是有多少个复选框 并不是多少个选中的复选框 你需要遍历一遍 判断复选框的checked属性 才能得到被选中的复选框个数

选中的选项是【checkBox.checked == true】 ljy19900123 说的是对的……请自寻查阅。