为什么这个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>


守候你守候我
浏览 783回答 8
8回答

慕姐4208626

你只是判断delUids有多少个。而且也判断错了,是==0,不是==-1,改成下面的&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;checkDelForm()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;cbs&nbsp;=&nbsp;document.getElementsByName("delUids"),&nbsp;len&nbsp;=&nbsp;cbs.length,&nbsp;ok&nbsp;=&nbsp;false; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(var&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;len;&nbsp;i++) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(cbs[i].checked)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ok&nbsp;=&nbsp;true;&nbsp;break; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!ok)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert("请选择要删除的用户"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;}

波斯汪

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

浮云间

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

慕容3067478

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 说的是对的……请自寻查阅。

慕的地6264312

除了要判断个数,是不是还要检查一下每一项的是否正确
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java