为什么这不会将#total显示为小数? class =“total”中输入的值是一个函数结果,它以2十进制格式存储该值。显示行总计的函数工作正常,但是当我使用下面的代码在qty字段更改时总计行时,mat是正确的并且更改正确发生,但它是int样式而不是货币格式(2位小数)地方)。我也尝试过精确度而没有变化。
$('[name^=qty]').change(function(){
var sum = 0;
$('input.total').each(function() {
sum += $(this).val();
});
$('#total').val(sum).toFixed(2);
});
以下是总计每行的代码
function Tot(x,price,y) {
var total = CurrencyFormatted(x*price);
var v = document.getElementById(y);
v.setAttribute('value',total);}
所有这些函数运行正常,总计正确并按预期更新,但总计字段中的小数位除外。
下面是我每行使用的html,然后是总数
<td>$<input id="t1" disabled="disabled" size="8" value="0.00" class="total" />
...
<input disabled="disabled" id="total" name="total" size="8" value="0.00" />
css中没有任何内容可以改变类或表结构中数字的格式。我完全失去了,但希望有人会看到我不知道的事情。提前谢谢。
答案 0 :(得分:2)
$('input.total').each(function() {
sum += parseFloat( $(this).val() );
});
$('#total').val( sum.toFixed(2) );
编辑,因为我很忙,我没有解释我的答案,Greg Pettit做了,所以这里是解释
你试图将toFixed()链接到不是数字的东西。此外,您没有将检索到的值转换为浮点数。 JS可能已经处理了后者,但最好按照样本
通过parseFloat运行它答案 1 :(得分:0)
答案 2 :(得分:0)
val
返回String
个对象,而不是数字。在致电parseFloat
之前,您需要致电Number
或转发toFixed(2)