Javascript条件语句返回错误的输出

时间:2015-08-12 03:14:32

标签: javascript

以下是检查和阻止输入大于可用数量的值的功能。它由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 个答案:

答案 0 :(得分:3)

问题是你正在进行字符串比较,因为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);

        }
    }

}