开发者问题收集

Javascript 条件语句返回错误输出

2015-08-12
61

下面是我的函数,用于检查和防止输入大于可用数量的值。它由 onBlur 触发。

假设: intData = 7 intOnHand = 46

当它到达 if(intData > intOnHand) 时,它会输入代码。据说它不应该这样。因为 7 > 46 是假的。奇怪的是,只有当输入数据介于 5-9 之间时才会发生这种情况。并且大于 46(这是正确的)。

我的警报输出:
intData7
inOnHand46
借入数量不得大于库存数量!

function CheckInput(intData){

      var mode = $('#mode').val();

      intOnHand = $('#qtyin').html();
      if(mode == 'Borrow'){
           if(intData > intOnHand){
               alert("intData"+intData);
               alert("inOnHand"+intOnHand);
                alert("Qty to Borrow Must not greater than the qty on the inventory!");
                $("#QtyToReturn").val(intOnHand);

           }
      }

 }
1个回答

问题是您正在进行字符串比较,因为 intOnHand 是字符串类型,请在比较之前将其转换为数字类型

function CheckInput(intData) {

    var mode = $('#mode').val();

    var intOnHand = +$('#qtyin').html();
    if (mode == 'Borrow') {
        if (+intData > intOnHand) {
            alert("intData" + intData);
            alert("inOnHand" + intOnHand);
            alert("Qty to Borrow Must not greater than the qty on the inventory!");
            $("#QtyToReturn").val(intOnHand);

        }
    }

}
Arun P Johny
2015-08-12