我需要这个简单问题的帮助。每当我激活下面的代码时,无论我输入什么,我总是从else得到结果。我想检查一天是否介于1和30之间,如果它是激活if函数内的任何内容。如果它不在1到30之间,我想运行else函数并显示错误消息。
var day;
function changePage(){
if(day < 30 && day > 1){
day = document.getElementById("inputBox").value;
console.log(day);
window.location.href = "day-" + day + ".html";}
else{
alert("Invalid entry, must be between 1 and 30");}}
答案 0 :(得分:2)
在你按下循环之前,你的日子不会被设定。您需要在函数外部或内部但在循环之前定义day
function changePage() {
var day = document.getElementById("inputBox").value;
if (day < 30 && day > 1) {
console.log(day);
window.location.href = "day-" + day + ".html";
} else {
alert("Invalid entry, must be between 1 and 30");
}
}
答案 1 :(得分:0)
我总是从else
得到结果
是的,这是合乎逻辑的,因为代码中的day
为undefined
,因此以下if
语句if(day < 30 && day > 1)
始终为false
,因此{ {1}}部分将始终到达。
在你的deaclartion初始化else
变量,如下所示:
day
答案 2 :(得分:0)
是的,我理解,我在我的功能中定义了一天。我将它更改为if else函数之外,它工作正常。谢谢大家。