我有一个来自服务器的范围编号,如下所示。
var max = 50;
var min = 25;
var uservalue = document.getElementById("userinput").value;// 35
用户在输入框中输入值,我需要比较输入的值是在范围内还是在范围之上。 我编写了如下代码,但没有工作。
if(uservalue<min || uservalue>max ){
alert("Error");
}else if (uservalue>min && uservalue<max)
alert("success");
建议的条件是,用户输入的值是在范围内还是在范围之外 编辑:用户在范围内外输入值,我正在寻找条件将用户输入值的按钮状态更改为黄色,红色,绿色。现在它总是变得超出范围并达到第一个条件
答案 0 :(得分:2)
您正在以字符串形式读取uservalue,您需要将其转换为int:
uservalue = parseInt(uservalue)
此外,这应该足够了:
if(uservalue < min || uservalue > max ){
alert("Error");
}
else {
alert("success");
}
答案 1 :(得分:1)
.value
将是一个字符串值,而不是整数。 JavaScript的类型强制是......复杂的,所以你最好用parseInt
和isNaN
进行显式整数转换:
var max = 50;
var min = 25;
var userValueStr = document.getElementById('userInput').value;
var userValueNum = parseInt( userValueStr );
if( !isNaN( userValueNum ) ) {
if( min <= userValueNum && userValueNum < max ) {
alert("Success");
}
else {
alert("Outside of range");
}
}
else {
alert("Value was not a number.");
}
答案 2 :(得分:1)
我会把它颠倒过来
if(uservalue>=min && uservalue<=max ){
alert("In range");
}else if (uservalue>min){
alert("Too high");
}else alert("Too low:);
alert("success");
答案 3 :(得分:1)
if(uservalue < min || uservalue > max ){
alert("Error");
}
else {
alert("success");
}
这必须有效。
答案 4 :(得分:1)
使用:
var uservalue = parseInt(document.getElementById("userinput").value);
或
if(+uservalue<min || +uservalue>max ){
...
}else if (+uservalue>min && +uservalue<max){
...
}
答案 5 :(得分:0)
如果输入type="text"
与parseInt()
function check(){
var uservalue = parseInt(document.getElementById("userinput").value);
var max = 50;
var min = 25;
if (uservalue>min && uservalue<max){
console.log("success");
}else
{
console.log("Error");
}
}
<input type="text" id="userinput" onchange="check()">
click me..!