stockQty是200和$(“#txtQty”)。val()是5,但它总是在其他内部。为什么?我从object获取stockQty值并将stockQty声明为全局变量并从另一个函数使用它。我试图输出两个值,它们是200和5.出了什么问题?
if(stockQty>0 && $("#txtQty").val() <= stockQty){}
else{}
答案 0 :(得分:3)
5大于200的唯一时间是使用字符串比较时;并且只有当两个操作数都是字符串时才会发生这种情况,所以在进行任何比较之前,你应该确保这些值是正确的类型:
var inStock = +stockQty, // may have been a string
stockRequested = +$("#txtQty").val(); // definitely a string
if (stockRequested <= inStock) {
}
答案 1 :(得分:1)
对我来说很好。
看到这个小提琴:http://jsfiddle.net/nVd67/1/
var stockQty = 200;
if(stockQty>0 && $("#txtQty").val() <= stockQty){ alert('true')}
else{alert('false')}
答案 2 :(得分:0)
您可能正在获取字符串值。使用parseInt()比较数值。
if(parseInt(stockQty)>0 && parseInt($("#txtQty").val()) <= parseInt(stockQty)){}
else{}