来自这个问题: get all the input value and make an addition
有促销活动:
买1个每个价格是14.37,买10个价格是13.28,买20个每个价格是10.78 .....现在我想做一个柜台。http://down123.xxmn.com/count.htm
计数器写下整个价格。现在,我的代码出了问题。
如果我在输入框中填写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);
});
现在,当数量为9时,合适的价格为9 * 14.37。但我的柜台不对。
答案 0 :(得分:0)
您正在寻找的答案是一种名为.toFixed()
尝试更改将价格设置为
的最后一行jQuery('#qtyvalue').html("Total price is " + price.toFixed(2));
这应该有用。
<强>更新强>:
当您清空任何文本框时,代码将停止工作,因为值为''
而不是0
,并且无法添加。将代码的第5行更新为:
result += parseInt((this.value === '' ? 0 : this.value), 10);