【发布时间】:2015-01-05 16:36:27
【问题描述】:
我有一个输入字段,它只应该接受介于 1 和 4 之间的数字。如果数字介于 1 和 4 之间,它会运行一些代码。如果没有,它会发出警报,告诉用户使用 1 到 4 之间的数字再试一次。这是我的代码
var number = document.getElementById("num").value;
if(Number(number) === 1 || Number(number) === 2 || Number(number) === 3 || Number(number) === 4 ){
//success code here///
}
else if(Number(number) !== 1 || Number(number) !== 2 || Number(number) !== 3 || Number(number) !== 4) {
} alert("Please type a whole number between(and including) 1 and 4 into the input field.");
我了解到'.value;'函数返回一个字符串,即使该值是一个数字。所以我把 var 'number' 放在 Number();将其转换为数字的函数。 问题是,当我在输入字段中输入 1 时。即使它等于 1,它也会发出警报。其他数字也不起作用。我检查了控制台,没有语法错误(也根据 DreamWeaver)。非常感谢您的帮助:)
【问题讨论】:
-
您不需要第二个
if测试。如果它不是您测试过的数字之一,那么您已经知道您需要知道什么。 -
@Pointy 所说的将
else if(){更改为else{ -
@Pointy 它仍然无法正常工作,正在发出警报
-
我认为您只是犯了一个错误,您的
alert("Please...");不在最后一个}之外,这意味着它每次都会运行。 -
它有助于通过 jsbeautifier.org 运行您的代码 - 这将使拼写错误更加明显。
标签: javascript html validation input operators