警报不适用于个位数

时间:2015-02-15 19:38:48

标签: javascript

以下是我的代码:

if (document.getElementById('actual').value < document.getElementById('min').value
    || document.getElementById('actual').value > document.getElementById('max').value) {
    alert("not in range");
}

此警报适用于10到100或更多的数字。

假设min值为0且max值为10且actual为9;然后此警报不起作用,即使实际值在范围内,它也会开始显示“不在范围内”的警报。

JSP文件中有3个可编辑的文本框: min,max和actual 。当用户在文本框中输入值时,我使用上面的代码检查值。

2 个答案:

答案 0 :(得分:1)

试试这个:

if(parseInt(document.getElementById('actual').value) < parseInt(document.getElementById('min').value)
|| parseInt(document.getElementById('actual').value) > parseInt(document.getElementById('max').value))
{ 
    alert("not in range");
}

答案 1 :(得分:1)

这类似于Jonny Grisham建议的解决方案;它只是将值移动到更容易阅读的变量中,并且总体上减少了特定行的长度。它还使用parseInt

var actual = parseInt(document.getElementById('actual').value);
var min = parseInt(document.getElementById('min').value);
var max = parseInt(document.getElementById('max').value);

if(actual < min || actual > max) {
    alert('not in range');
}

请注意,这些ID内部的值实际上是数字。有些条件you will get NaN(例如,它不是数字),或者您将获得您不期望的结果(例如{{1} }将导致parseInt("12number127"))。