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

Javascript conditional statement returning wrong output

本文关键字:条件 语句 Javascript 错误 输出 返回      更新时间:2023-09-26

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

假设:intData = 7intOnHand = 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);
           }
      }
 }

问题是你在做字符串比较因为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);
        }
    }
}