关于php:Javascript,如果函数不能与getElementById一起正常使用

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);
            }
            }


您试图查看一个字符串是否大于另一个字符串,但是您真正想要做的是比较数字。
与之相反,"4">"100" === true4 > 100 === false
将您的值转换为数字:

1
if(parseInt(document.getElementById('number').value) < 4 || parseInt(document.getElementById('number').value) > parseInt(document.getElementById("balancehidden").value))

如果希望使用小数,请使用parseFloat而不是parseInt,并且要注意基数参数。


问题是您正在尝试比较字符串值而不是整数。
请使用工作代码检查此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);
  }
}