我编写了简单的jsp文件,其中包含用户名和密码的文本字段。 我想使用javascript验证该字段,但是当我写的时候 var a = document.getElementsByID(“uname”)并打印a的长度,它将输出显示为'undefined'。
这是我的代码..
<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"> <a
href="/Edzeal/Register.jsp" shape="rect">Register</a></td>
<td></td>
</tr>
</table>
</form>
</body>
</html>
答案 0 :(得分:0)
您正在尝试提醒该元素的引用的“length”属性。与数组或字符串不同,元素对象没有任何此类属性,因此您看到“未定义”。
请参阅元素文档:https://developer.mozilla.org/en-US/docs/Web/API/element
和document.getElementById
https://developer.mozilla.org/en-US/docs/Web/API/document.getElementById
答案 1 :(得分:0)
Element
上没有属性length
,预计未定义。
https://developer.mozilla.org/en-US/docs/Web/API/document.getElementById
答案 2 :(得分:0)
只需更改
alert(a.length);
到
alert(a.value);
a是一个元素,没有表单字段的字符串值。你需要.value才能得到它。