0

有人可以告诉我我在这方面做错了什么吗?我见过人们在 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>

我知道这一定很简单,所以请提前原谅我的愚蠢。

4

2 回答 2

0

在这种情况下,使用它可能会更聪明document.getElementById("username")——这将返回单个元素而不是数组。

干杯,
弗洛里安

于 2013-11-07T23:17:44.163 回答
0

document.getElementsByName('username').length < 1表示“如果文档中没有名为 'username' 的元素”——这将始终为 false,因为文档中有这样的元素,并且返回值getElementsByName是一个数组。

你打算做的是

if (document.getElementsByName('username')[0].value.length < 1)

但我真的认为使用起来更好(更容易阅读,更难搞砸)

if (document.getElementsByName('username')[0].value == "")

由于目标元素也有一个 id,因此最好使用getElementByIdwhich 直接返回您正在寻找的元素(没有数组来混淆事物)并且这样做更快:

if (document.getElementById('username').value == "")
于 2013-11-07T23:18:08.790 回答