私は次のフォームを持っています:
<form action="next.html" id="userInput" method="post" onsubmit="return validate();">
Age: <input type="text" name="age" id="age"/>
function validate() {
var age = document.getElementById("age").value;
if(age > 100 || age < 0) {
alert("Age must be within 0 and 100");
return false;
} else {
return true;
}
}
これは正常に機能します。age テキストボックスに 100 より大きい数値を入力すると、エラー メッセージが表示され、現在のフォーム ページに留まります。
ただし、変数 errorMessage を次のように使用して警告ボックスを表示すると、機能しません。アラート エラー メッセージを表示せずに次のページに移動します。
function validate() {
var age = document.getElementById("age").value;
var errorMessage="";
if(age > 100 || age < 0) {
errorMessage = "Age must be within 0 and 100";
}
if( errorMessage !== "" )
alert(errorMessage);
return false;
} else {
return true;
}
}
では、なぜ最初は機能するのに 2 番目は機能しないのでしょうか?