我有以下表格:
<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;
}
}
这正常。如果我在年龄文本框中输入的数字大于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;
}
}
那么为什么第一次工作却第二次工作没有?
答案 0 :(得分:5)
在病情发生后我看到左支撑缺失了。代码应该是:
if( errorMessage !== "" ){
alert(errorMessage);
return false;
} else {
return true;
}
答案 1 :(得分:3)
function validate() {
var age = parseInt(document.getElementById("age").value),
errorMessage;
if(age > 100 || age < 0) errorMessage = "Age must be within 0 and 100";
if(errorMessage) {
alert(errorMessage);
return false;
}
else {
return true;
}
}
我缩短了一点,但你的主要问题是在if(errorMessage!=“”)之后没有括号: - )
答案 2 :(得分:1)
您的错误是语法,正如其他人指出的那样......您错过了{在if语句之后。您可能需要考虑复制未来的代码并将其粘贴到在线JavaScript语法检查器中。例如。 http://www.javascriptlint.com/online_lint.php