Jquery 无法将生成的数字格式化为十进制形式
为什么不将“总计”显示为小数点? class=“total”中输入的值是以2位十进制格式存储值的函数结果。显示行总计的功能工作正常,但当数量字段更改时,我使用下面的代码对行进行总计时,mat是正确的,并且更改发生正确,但它是int样式而不是货币格式(小数点后2位)。我也试着准确无误Jquery 无法将生成的数字格式化为十进制形式,jquery,numbers,Jquery,Numbers,为什么不将“总计”显示为小数点? class=“total”中输入的值是以2位十进制格式存储值的函数结果。显示行总计的功能工作正常,但当数量字段更改时,我使用下面的代码对行进行总计时,mat是正确的,并且更改发生正确,但它是int样式而不是货币格式(小数点后2位)。我也试着准确无误 $('[name^=qty]').change(function(){ var sum = 0; $('input.total').each(function() { sum += $
$('[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中没有任何东西会改变类或表结构中数字的格式。我完全不知所措,但希望有人能看到我没有看到的东西。先谢谢你
$('input.total').each(function() {
sum += parseFloat( $(this).val() );
});
$('#total').val( sum.toFixed(2) );
编辑,因为我很忙,我没有解释我的答案,格雷格·佩蒂特解释了,所以解释如下
您试图将toFixed()链接到不是数字的对象。此外,您没有将检索到的值转换为浮点值。JS可能已经处理了后者,但最好按照示例通过parseFloat运行它,您可以使用parseFloat函数来完成:
parseFloat(value).toFixed(2);
有关更多示例:
val
返回一个字符串
对象,而不是数字。在调用toFixed(2)
之前,您需要调用parseFloat
或强制转换到Number
,您试图将toFixed()链接到非数字的对象。此外,您没有将检索到的值转换为浮点值。JS可能已经处理了后者,但最好按照示例通过parseFloat运行它。