我有使用JavaScript的这个条件,我有2个文本框,我将比较输入(输入是数字)。条件是当文本框2小于文本框1时,它将有一条警告消息,表明textbox2必须大于textbox2。所以输入就像这样
textbox2 > textbox1
15 > 1 = alert pops out
15 > 2 = not ok
15 > 3 = not ok
15 > 4 = not ok
15 > 5 = not ok
15 > 6 = not ok
15 > 7 = not ok
15 > 8 = not ok
15 > 9 = not ok
15 > 10 = ok
onwards is ok.
为什么当它比较2到9时它不会发出任何警报?
这是我的条件:
if(textbox2.value < textbox2.value)
{
document.getElementById("lblStatus1").innerHTML = 'Pay1 must be greater than To1';
}
答案 0 :(得分:3)
这里的问题是你要比较字符串,这与比较数值不同。
&#34; 15&#34;是&lt; &#34; 2&#34;因为它按字母逐字符地进行评估。领先的&#39; 1&#39;在&#39; 15&#39;原因&#39; 15&#39;要&lt; &#39; 2&#39;
答案 1 :(得分:1)
您正在比较字符串。哪个不会按你的意图运作。
使用parseInt()
:
if(parseInt(textbox2.value) < parseInt(textbox2.value))
{
document.getElementById("lblStatus1").innerHTML = 'Pay1 must be greater than To1';
}
答案 2 :(得分:1)
您在解析输入值吗?如果没有,您就会对可能导致问题的字符串进行比较。像这样:
parseInt(inputVal1, 10) > parseInt(inputVal2, 10)
答案 3 :(得分:0)
如果您复制并粘贴代码......
您正在比较相同的值textbox2.value和textbox2.value。
答案 4 :(得分:0)
您遇到与验证字符串相关的问题。尝试将值解析为数字:
Value 1<input type="text" id="text1" /><br />
Value 2<input type="text" id="text2" /><br /><br />
<input type="button" value="Validate" onclick="doValidate();" />
function doValidate() {
var value1 = new Number(document.getElementById("text1").value);
var value2 = new Number(document.getElementById("text2").value);
if (value2 < value1)
alert("Value 2 must be higher than Value 1!");
}
请注意在JavaScript中使用 new Number()。这有效地将字符串转换为数字(如果它是有效数字)。