有人可以告诉我这件事我做错了吗?我看到人们在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>
我知道这一定是简单的事情,所以请原谅我这样的愚蠢。
答案 0 :(得分:0)
在这种情况下,使用document.getElementById("username")
可能会更聪明 - 这会返回单个元素而不是数组。
干杯,
弗洛里安
答案 1 :(得分:0)
document.getElementsByName('username').length < 1
说“如果文档中没有名为'username'的元素” - 这将始终为false,因为文档中有这样的元素,并且{{1}的返回值是一个数组。
你的意思是
getElementsByName
但我真的认为使用
更好(更容易阅读和更难搞乱)if (document.getElementsByName('username')[0].value.length < 1)
由于目标元素也有一个id,所以最好使用if (document.getElementsByName('username')[0].value == "")
直接返回你正在寻找的元素(没有数组来混淆事物)并且速度更快:
getElementById