我发生了一个奇怪的错误。这是jQuery函数
jQuery(document).ready(function(){
jQuery("#new_customer").delegate(".kool", "keyup", function(event) {
var SelectProd = jQuery('.price, .qty',this);
var price = jQuery('.price', this).val();
var qty = jQuery ('.qty', this).val();
var amount = price + qty;
var lineItemWrapperElement = SelectProd.parent().parent();
jQuery("input.amount", lineItemWrapperElement).val(amount);
});
});
而不是添加“+”正在结合。即12 + 1即将成为121似乎是什么问题?任何指导都可以。
答案 0 :(得分:4)
这是因为你连接了字符串。您必须将变量转换为数字类型。我假设您的价格可以是浮点数,因此您可以使用parseFloat()
函数:
var amount = parseFloat(price) + parseFloat(qty);
为了确定精确度,您还可以在以下后使用toFixed()
:
amount = amount.toFixed(2);
答案 1 :(得分:2)
var amount = parseInt(price, 10) + parseInt(qty, 10);
或
var amount = parseFloat(price).toFixed(2) + parseInt(qty, 10);
因为,.val()
返回字符串属性,而+
具有双重添加和串联字符串。这取决于变量的类型。
如果parseFloat()
或parseInt()
取决于您,您希望如何输出。
答案 2 :(得分:2)
您正在连接字符串,因此您必须先将它们转换为数字
var amount = +price + +qty;
答案 3 :(得分:1)
price和qty是一个字符串解析它浮动或任何数字类型
var amount = parseFloat(price) + parseFloat(qty);
答案 4 :(得分:1)
var amount = parseFloat(price).toFixed(2) + parseInt(qty, 10);