1

私はJSが初めてで、ここで最も簡単な検証をしようとしていますが、機能させることができません:/基本的に送信を押すと、フォームの下のdivにエラーテキストが表示されるか、phpファイルからエコーテキストが表示されます。どうしたの?私が間違っていることを本当に知りません助けてください

<form name="myform" id="myform" method="post" action="echo.php">
<label for="username">User Name:</label><br />
<input type="text" id="username" name="username" /><br />
<label for="password">Password</label><br />
<input type="text" name="password" /><br />
<input type="submit" id="submit" value="Send">
</form>
<div id="errorMessages"></div>

そしてJSコード:

window.onload = function(){
validateForm();
}

function validateForm(){

document.getElementById("myform").onsubmit = function(){

    if (document.getElementById("username") == ""){
        document.getElementById("errorMessages").innerHTML = "ERROR";
        return false;
        }
    else return true;
};
}
4

3 に答える 3

4

document.getElementById("username")DOM要素です。
要素が存在する限り、 fuzzily equal になることはありません""

おそらく.value、テキストボックスの値を返す が必要です。

于 2013-04-29T19:43:28.710 に答える
0
if (document.getElementById("username").value){
    document.getElementById("errorMessages").innerHTML = "ERROR";
    return false;
}
else { 
    return true;
}

document.getElementByIdページで見つかった DOM 要素のインスタンスを返すことに注意してください。そのため、プロパティを使用し.valueます。また、JavaScript で文字列を空の文字列と比較する必要はあまりないので、== "".

于 2013-04-29T19:44:15.443 に答える
0

これは正しいjsです:

window.onload = function(){
validateForm();
}

function validateForm(){

document.getElementById("myform").onsubmit = function(){

    if (document.getElementById("username").value == ""){
        document.getElementById("errorMessages").innerHTML = "ERROR";
        return false;
        }
    else return true;
};
}

document.getElementById("username") の後に ".value" がありませんでした

于 2013-04-29T19:49:22.713 に答える