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

标签 javascript

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

假设: 整数数据 = 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);

           }
      }

 }

最佳答案

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

        }
    }

}

关于Javascript 条件语句返回错误的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31955426/

相关文章:

javascript - 将 Promise 与 Mongoose 结合使用的最佳实践

javascript - Node.js/Express/Jade Javascript 未按正确顺序加载

javascript - 错误 : Cannot find module 'wrench' , 当我运行 gulp 命令时出现此错误

javascript - 从数组中移除对象

JavaScript 闭包 : Uncaught TypeError: counter. 值不是函数

javascript - 如何为生产构建 Vue 3 Vite 应用程序

javascript - 如何在 node.js 中输出深度堆栈跟踪?

javascript - 页面滚动时的div位置

Javascript 上传多个自动生成的文件表单

javascript - Backbone 验证未执行