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 使用北美数字格式,这意味着,is used as athousands seperator和 the .is used decimal separator

您的问题有两种解决方案:

  • 教您的用户输入数字,例如1000.25
  • 写一个例程1.000,25变成1000.25

String.prototype.replace将是您的第二选择的朋友。

于 2012-11-01T02:27:50.960 回答
1

您正在尝试将字符串相乘...使用 parseFloat() 和 replace() 方法,如此处的 jsFiddle 更新所示

 $('.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

您在这里将两个字符串相乘,而不是数字..

使用带有基数的 parseInt转换它们

或者

使用parseFloat转换它们

更改此行

 result = price * quantity;

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

或者

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