0

我编写了简单的 jsp 文件,其中包含用户名和密码的文本字段。我想使用 javascript 验证该字段,但是当我编写 var a=document.getElementsByID("uname") 并打印 a 的长度时,它显示我的输出为“未定义”。

这是我的代码..

<head>
<script>
    function validate() {

        var a=document.getElementById("uname");
        alert(a.length);
        return false; 
    }
</script>

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Login</title>
</head>
<body>
    <form method="post" action="/Edzeal/Validate">



        <table align="center">
            <tr>
                <td>User Name:</td>
                <td><input type="text" name="uname" id="uname"></td>
                <td><p id="uerror"></p></td>
            </tr>
            <tr>
                <td>Password:</td>
                <td><input type="password" name="pwd"></td>
            </tr>
            <tr></tr>
            <tr>
                <td><input type="submit" value="Login" onclick="return validate()"></td>
                <td><input type="reset">&nbsp<a
                    href="/Edzeal/Register.jsp" shape="rect">Register</a></td>
                <td></td>
            </tr>
        </table>
    </form>
</body>
</html>
4

3 回答 3

0

您正试图提醒对该元素的引用的“长度”属性。与数组或字符串不同,元素对象没有任何此类属性,因此您看到的是“未定义”。

请参阅元素文档:https ://developer.mozilla.org/en-US/docs/Web/API/element

和 document.getElementById

https://developer.mozilla.org/en-US/docs/Web/API/document.getElementById

于 2013-09-18T04:10:37.537 回答
0

Element没有任何属性length,预计它是未定义的。

https://developer.mozilla.org/en-US/docs/Web/API/element?redirectlocale=en-US&redirectslug=DOM%2Felement

https://developer.mozilla.org/en-US/docs/Web/API/document.getElementById

于 2013-09-18T04:10:59.153 回答
0

只是改变

alert(a.length);

alert(a.value);

a 是一个元素,不是表单域的字符串值。你需要 .value 来获得它。

于 2013-09-18T04:13:45.453 回答