在这里输入我的代码:
var UpperLimit = document.getElementById("UpperLimit").value;
var LowerLimit = document.getElementById("LowerLimit").value;
if (UpperLimit < LowerLimit){
alert("Upper Limit is smaller as the Lower Limit!")
return false; //Exit Function
} else {
// **do something with the Upper and Lower Limit**
}
Lower Limit:<input style=" margin-left: 15px;" class="Limit" id="LowerLimit" type="number">m³</input>
Upper Limit:<input style=" margin-left: 17px;" class="Limit" id="UpperLimit" type="number">m³</input>
例如,如果我(例如)在HTML中为“下限”输入150,为“上限”输入1000,则比较将返回“ true”并显示警告。 我不知道错误在哪里,我猜JS正在解释该值错误,但我不知道该怎么办。
感谢您的帮助!
Caliban
答案 0 :(得分:1)
您的输入值仍会返回,因此您必须将输入值转换为数字。
您可以这样做:
var UpperLimit = Number(document.getElementById("UpperLimit").value);
var LowerLimit = Number(document.getElementById("LowerLimit").value);
答案 1 :(得分:0)
这是因为即使将输入类型设置为number
,该值也是字符串类型。
1000 < 150 = false;
"1000" < "150" = true;
要更正此错误,只需将您的值强制转换为Number
,例如:
var UpperLimit = Number(document.getElementById("UpperLimit").value);
var LowerLimit = Number(document.getElementById("LowerLimit").value);
编辑:
作为参考,为什么会发生字符串比较:Why is one string greater than the other when comparing strings in JavaScript?
答案 2 :(得分:0)
您必须将输入的值强制转换为数字,因为它返回字符串
var UpperLimit = Number( document.getElementById("UpperLimit").value);
var LowerLimit = Number( document.getElementById("LowerLimit").value);
if (UpperLimit < LowerLimit){
alert("Upper Limit is smaller as the Lower Limit!")
return false; //Exit Function
} else {
**do something with the Upper and Lower Limit**
}
答案 3 :(得分:0)
请尝试这个
function compair()
{
debugger;
var UpperLimit = document.getElementById("UpperLimit").value;
var LowerLimit = document.getElementById("LowerLimit").value;
var isvalid=true;
let regex = new RegExp(/[^0-9]/, 'g');
if (UpperLimit.match(regex)) {
alert("UpperLimit Must be a valid number");
isvalid=false;
}
if (LowerLimit.match(regex)) {
alert("LowerLimit Must be a valid number");
isvalid=false;
}
if (isvalid)
{
if ( parseInt(UpperLimit) < parseInt(LowerLimit)){
alert("Upper Limit is smaller then the Lower Limit!")
return false; //Exit Function
}
else {
alert("Lower Limit is smaller then the upper Limit!")
}
}
}
<html>
<head>
</head>
<body>
Lower Limit: <input style=" margin-left: 15px;" class="Limit" id="LowerLimit" type="text"/>m³ <br/>
Upper Limit: <input style=" margin-left: 17px;" class="Limit" id="UpperLimit" type="text"/>m³
<br/>
<input type="button" onclick="compair()" value="Submit"/>
</body>
</html>