现在,当输入为2时单击按钮,我将收到2个警报(警报用于测试)
但是,当我把一个数字小于我的余额时点击按钮,我也会得到2个警报,说数字=(例如)7和balancehidden = 100.所以我不明白为什么我得到这些警报。因为它小于余额且大于4。
这也是当调用refreshBalance()时存储余额的字段:
<input type=hidden id="balancehidden" name="balancehide"
value=""/>
Javascript:
<input type="text" id="number"><br>
<button type="button" class="btn btn-success" id="redeem">Redeem</button>
<body onload="refreshBalance()">
<script type="text/javascript">
document.getElementById('redeem').onclick = function() {
if(document.getElementById('number').value < 4 || document.getElementById('number').value > document.getElementById("balancehidden").value)
{
alert(document.getElementById("number").value);
alert(document.getElementById("balancehidden").value);
}
}
</script>
答案 0 :(得分:3)
您正在尝试查看一个字符串是否大于另一个字符串,但您真正想要做的是比较数字。
违反直觉,"4" > "100" === true
而4 > 100 === false
。
将您的值转换为数字:
if(parseInt(document.getElementById('number').value) < 4 || parseInt(document.getElementById('number').value) > parseInt(document.getElementById("balancehidden").value))
如果您需要小数,请使用parseFloat
代替parseInt
,并注意radix parameter。
答案 1 :(得分:2)
问题是您正在尝试比较字符串值而不是整数。 请使用工作代码https://jsfiddle.net/2kbcuhg9/
检查此jsfiddledocument.getElementById('redeem').onclick = function() {
var number = parseInt(document.getElementById('number').value);
var balance = parseInt(document.getElementById('balancehidden').value);
if(number < 4 || number > balance) {
alert(document.getElementById("number").value);
alert(document.getElementById("balancehidden").value);
}
}