在尝试确定一个值是否大于另一个值时,我遇到了一个奇怪的JavaScript/jQuery数学错误.
这是一个使用jsFiddle链接到我的代码:http://jsfiddle.net/qxeTj/
$("#Quantity").live("focusout", function() {
var qty = +$(this).val();
var stock = +$('#StockLvl').val();
if (qty > stock) {
$('#Result').html("<p>Quantity: " + qty + "</p><p>Stock: " + stock + "</p>" + "<p>Not Enough Stock.</p>");
}
else if (stock > qty || stock == qty) {
$('#Result').html("<p>Quantity: " + qty + "</p><p>Stock: " + stock + "</p>" + "<p>Enough Stock.</p>");
}
});
Run Code Online (Sandbox Code Playgroud)
问题示例:
当我将焦点移出该input字段时,如果它具有1或的值2,则它可以正常工作.如果我有一个值,它甚至可以工作3, 4, 5, 6, 7, 8, 9.
但问题是,然后当我用值从10-19或100-199或1000-1999等等.它说它有足够的库存,而不应该.
你在比较字符串.首先将它们转换为数字.
var qty = Number( $(this).val() );
var stock = Number( $('#StockLvl').val() );
Run Code Online (Sandbox Code Playgroud)
要么
var qty = +$(this).val();
var stock = +$('#StockLvl').val();
Run Code Online (Sandbox Code Playgroud)
要么
在您的情况下,这种方式最安全.
var qty = parseInt( $(this).val(), 10 );
var stock = parseInt( $('#StockLvl').val(), 10 );
Run Code Online (Sandbox Code Playgroud)