一个简单的JS-PHP验证(或者我是这么认为的)


A simple JS-PHP validation (or so I thought)

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