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 に答える