0

私はNaN結果として得ています、そしてそれは私のjqueryが次のような数字を掛けているからです"204,3 * 3"

どうすれば対処できますか?

価格を変更できないのですが、どうすればよいですか?

"234 * 2"','番号が取得されるとすぐに正常に動作しますNaN

<script type="text/javascript">
    $('.quantity').keyup(function () {
        var parent = $(this).parent(),
            price = parent.find('.price').html(),
            quantity = parent.find('.quantity').val(),
            result = price * quantity;
        parent.find('.price2').html(result);
    });
</script>

     <span class="price">69,9</span>
     <input type="text" class="quantity">    
     <span class="price2">69,9</span>
     <span class="total">Total:</span>
     <div class="line2"></div>

私のJSfiddleがすべてそこにあることを確認してください

どんな種類の助けも大歓迎です

4

3 に答える 3

4

Javascript は北米の数値形式を使用します。つまり、,が として使用され、 が としてthousands seperator使用.されdecimal separatorます。

問題には 2 つの解決策があります。

  • ユーザーに次のような数字を入力するように教えます1000.25
  • 1.000,25変換するルーチンを書く1000.25

String.prototype.replace2番目の選択肢であなたの友達になります。

于 2012-11-01T02:27:50.960 に答える
1

文字列を乗算しようとしています... jsFiddle update hereに示されているように、parseFloat() および replace() メソッドを使用します

 $('.quantity').keyup(function () {
    var parent = $(this).parent(),
        price = parent.find('.price').html().replace(',', '.'),
        quantity = parent.find('.quantity').val().replace(',','.'),
        result = parseFloat(price) * parseFloat(quantity);
    parent.find('.price2').html(result);
});
于 2012-11-01T02:24:27.297 に答える
1

ここでは、数値ではなく2 つの文字列を乗算しています。

基数付きの parseInt を使用して変換します

また

parseFloatを使用して変換します

この行を変更

 result = price * quantity;

result = parseInt(price,10) * parseInt(quantity,10);

また

result = parseFloat(price) * parseFloat(quantity);
于 2012-11-01T02:27:30.773 に答える