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.getElementsByName('username').length < 1は、「'username' という名前のドキュメントに要素がない場合」と言います。これは、ドキュメントにそのような要素があり、の戻り値がgetElementsByName配列であるため、常に false になります。

代わりにあなたがするつもりだったのは

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

しかし、私は本当に(読みやすく、混乱しにくい)使用する方が良いと思います

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

ターゲット要素にも id があるため、getElementById探している要素を直接返し (混乱させる配列はありません)、より高速に処理するものを使用することをお勧めします。

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

この場合、代わりに使用する方がおそらく賢明document.getElementById("username")です。これは、配列ではなく単一の要素を返します。

乾杯、
フロリアン

于 2013-11-07T23:17:44.163 に答える