2

我发生了一个奇怪的错误。这是 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 似乎是什么问题?任何指导都可以。

4

5 回答 5

4

发生这种情况是因为您连接了字符串。您必须将变量转换为数字类型。我假设你的价格可以是浮动的,所以你可以使用parseFloat()函数:

var amount = parseFloat(price) + parseFloat(qty);

为了固定精度,您还可以toFixed()在以下情况下使用:

amount = amount.toFixed(2);
于 2012-06-05T10:03:40.540 回答
2
 var amount = parseInt(price, 10) + parseInt(qty, 10);

或者

var amount = parseFloat(price).toFixed(2) + parseInt(qty, 10);

因为,.val()返回字符串属性并+具有字符串的添加和连接的双重滚动。这取决于变量的类型。

如果parseFloat()parseInt()取决于你,你想要你的输出。

于 2012-06-05T10:04:21.490 回答
2

您正在连接字符串,因此您必须先将它们转换为数字

var amount = +price + +qty;
于 2012-06-05T10:10:15.497 回答
1

price 和 qty 是一个字符串,将其解析为 float 或任何数字类型

var amount = parseFloat(price) + parseFloat(qty);
于 2012-06-05T10:05:14.780 回答
1
var amount = parseFloat(price).toFixed(2) + parseInt(qty, 10);
于 2012-06-05T10:05:23.457 回答