Javascript if function not working properly with getElemenById
没问题,所以我明白了,有点像您拥有一个网站可以兑换积分,现在当我单击兑换时,我不希望给出的数字小于4分,并且给出的数字大于您的积分余额 。
现在,当我在输入为2时单击按钮时,我将收到2条警报(警报正在测试中)
但是,当我单击一个按钮,当我输入的数字小于余额时,我也会收到2个警报,例如数字=(例如)7和balancehidden =100。所以我不明白为什么会收到这些警报。 因为它小于余额大于4。
这也是在调用refreshBalance()时余额存储的字段:
1 2 | <input type=hidden id="balancehidden" name="balancehide" value=""/> |
Javascript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <input type="text" id="number"> <button type="button" class="btn btn-success" id="redeem">Redeem</button> <body onloadx="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); } } |
您试图查看一个字符串是否大于另一个字符串,但是您真正想要做的是比较数字。
与之相反,
将您的值转换为数字:
1 | if(parseInt(document.getElementById('number').value) < 4 || parseInt(document.getElementById('number').value) > parseInt(document.getElementById("balancehidden").value)) |
如果希望使用小数,请使用
问题是您正在尝试比较字符串值而不是整数。
请使用工作代码检查此jsfiddle:https://jsfiddle.net/2kbcuhg9/
1 2 3 4 5 6 7 8 | document.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); } } |