有人能告诉我我在这方面做错了什么吗?我见过人们在 GetElementsByName() 中使用引号,我也见过没有这样做的人。当用户名为空时,生成的脚本不执行任何操作。
if (document.getElementsByName('username').length < 1) {
alert("Username must be filled out");
return false;
}
来自 HTML 的调用是这样的:
<form name="stafflogin" action="usermain.php" onsubmit="return validateForm()" method="post">
<p>Username:
<input type="text" id="username" name="username" size="15" value=""/> <br />
Password: <input type="password" id="userpass" name="password" size="15" value=""/>
<input type="submit" id="submit" name="submit" value=" - Submit - ">
</p>
我知道这一定很简单,所以请提前原谅我这样的愚蠢。
在这种情况下,改用document.getElementById("username")
可能会更聪明 - 这返回单个元素而不是数组。
干杯
佛瑞恩
document.getElementsByName('username').length < 1
说"如果文档中没有名为'用户名'的元素"——这将始终为 false,因为文档中有这样的元素,并且返回值 getElementsByName
是一个数组。
相反,你打算做的是
if (document.getElementsByName('username')[0].value.length < 1)
但我真的认为使用起来更好(更容易阅读,更难搞砸)
if (document.getElementsByName('username')[0].value == "")
由于目标元素也有一个 id,因此最好使用 getElementById
直接返回您要查找的元素(没有数组来混淆事物)并且这样做更快:
if (document.getElementById('username').value == "")