Javascript如果函数与getElemenById无法正常工作

时间:2016-04-06 20:51:02

标签: javascript php getelementbyid

哦,所以我得到了这个,有点看看就像你有一个网站,你可以兑换积分,现在当我点击兑换我不希望给出的数字小于4分,并且给出的数字大于你的平衡点。

现在,当输入为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>

2 个答案:

答案 0 :(得分:3)

您正在尝试查看一个字符串是否大于另一个字符串,但您真正想要做的是比较数字。 违反直觉,"4" > "100" === true4 > 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/

检查此jsfiddle
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);
  }
}