我在这样的表单中有一些输入值:
<tr>
<td>
<input type="text" disabled class="qty" value="1" name="quantity">
</td>
<td>
<span class="euro">€</span><input type="text" disabled class="price" value="0,60">
</td>
</tr>
<tr>
<td>
<input type="text" disabled class="qty" value="1" name="quantity">
</td>
<td>
<span class="euro">€</span><input type="text" disabled class="price" value="0,25">
</td>
</tr>
// below table row is empty because product is not on stock! //
<tr>
<td></td>
<td></td>
</tr>
//etc...
我尝试对qty
和price
输入值求和,但我的脚本不断返回NaN
作为结果。我认为这是因为当产品没有库存时,表格单元格是空的。因此,请返回NaN
或undefined
。
我已经阅读了许多线程,如this,但这并不能解决我的问题。
我拥有的是:
function update_amounts(){
var sum = 0.0;
$('#inspiration .table tbody tr').each(function() {
var qty = $(this).find('.qty').val();
var price = $(this).find('.price').val();
console.log(price, qty);
var amount = (qty*price)
sum+=amount;
});
$('.total').text(sum);
}
我已经尝试过的是:
var qty = parseInt($(this).find('.qty').val()) || 0;
var price = parseFloat($(this).find('.price').val()) || 0;
和
var qty = $(this).find('.qty').val();
var price = $(this).find('.price').val();
qty= parseInt(qty) || 0;
price= parseFloat(price) || 0;
console.log returns
(2) 1 0
0 0
(3) 1 0
以下是console.log返回的原始代码(第一个是价格,第二个数量):
0,60 1
0,90 1
undefined undefined
0,14 1
0,12 1
0,75 1
我不知道有任何新方法可以解决这个问题!
答案 0 :(得分:1)
您需要使用.
字符来启动浮点,而不是,
。
value="0,60"
不会被视为数字。 value="0.60"
将是。
% node
> "0.60" * 5
3
> "0,60" * 5
NaN
>
当parseFloat
运行时,它会点击,
并停止将其余部分视为一个数字,因此您最终会使用0
。
> parseFloat("0.60") * 5
3
> parseFloat("0,60") * 5
0