Javascript 当数量等于10时,为什么计算价格不正确?

Javascript 当数量等于10时,为什么计算价格不正确?,javascript,jquery,Javascript,Jquery,可能重复: 从这个问题: 有一个促销活动: 买1个价格是14.37,买10个价格是13.28,买20个价格是10.78 现在我想做一个计数器 柜台写了全部价格。现在,我的代码有点问题 如果我在一个输入框中填入5,那么在另一个输入框中填入5。整个价格不是132.8美元。为什么? 如果我删除输入框中的一个数字,整个价格不会改变。多谢各位 守则: var $inputs = jQuery('.liste_couleur_qty li input'); $inputs.keyup(function(

可能重复:

从这个问题:

有一个促销活动:

买1个价格是14.37,买10个价格是13.28,买20个价格是10.78

现在我想做一个计数器

柜台写了全部价格。现在,我的代码有点问题

如果我在一个输入框中填入5,那么在另一个输入框中填入5。整个价格不是132.8美元。为什么?

如果我删除输入框中的一个数字,整个价格不会改变。多谢各位

守则:

var $inputs = jQuery('.liste_couleur_qty li input');
$inputs.keyup(function() {
   var result = 0;
   $inputs.each(function(){
     result += parseInt(this.value, 10);
   });
   var JsonData =[{"price_id":"1","website_id":"0","price_qty":1,"price":"14.37"},
 {"price_id":"2","website_id":"0","price_qty":10,"price":"13.28"},
 {"price_id":"3","website_id":"0","price_qty":20,"price":"10.78"}, 
  {"price_id":"3","website_id":"0","price_qty":50,"price":"9.23"},
   {"price_id":"3","website_id":"0","price_qty":100,"price":"7.91"}
 ]
   var sorted = JsonData.sort(function(a,b){return a.price_qty - b.price_qty;});

var i=0;
while(i < sorted.length && sorted[i].price_qty <= result){i++;} 

var price = sorted[i-1].price;

   price= price*result;

   jQuery('#qtyvalue').html("Total price is " + price);    
});
var$inputs=jQuery('.liste\u couleur\u qty li input');
$inputs.keyup(函数(){
var结果=0;
$inputs.each(函数(){
结果+=parseInt(这个值为10);
});
var JsonData=[{“价格id”:“1”,“网站id”:“0”,“价格数量”:1,“价格”:“14.37”},
{“价格id”:“2”,“网站id”:“0”,“价格数量”:10,“价格”:“13.28”},
{“价格id”:“3”,“网站id”:“0”,“价格数量”:20,“价格”:“10.78”},
{“价格id”:“3”,“网站id”:“0”,“价格数量”:50,“价格”:“9.23”},
{“价格id”:“3”,“网站id”:“0”,“价格数量”:100,“价格”:“7.91”}
]
var sorted=JsonData.sort(函数(a,b){返回a.price_数量-b.price_数量;});
var i=0;

而(i.toFixed()

尝试更改将价格设置为的最后一行

jQuery('#qtyvalue').html("Total price is " + price.toFixed(2));
这应该行得通


更新

当您清空任何文本框时,您的代码将停止工作,因为该值是
'
而不是
0
,并且无法添加。请将代码的第5行更新为:

result += parseInt((this.value === '' ? 0 : this.value), 10);

你是在说为什么它显示的是129.32888888888而不是129.33?还是别的什么?不,如果我删除输入框中的一个数字,整个价格不会改变好的,谢谢。如果我删除输入框中的一个数字,整个价格不会改变。谢谢你下面的意思:jQuery('#qtyvalue').html(“总价是”+price);});不,在包含
.keyup()
的代码行下方。在此处显示的代码中,它将位于第2行下方,但现在当我使用Backspace键删除输入框中的默认值0时,为什么它无法删除?好的,我的不好。没有仔细考虑。请参阅更新的代码