有一个表单字段缺少分数中的零。表格字段是总计。
其他人都可以(total_t和total_tax工作正常)。我已经尝试了一些东西,但它要么停止工作,要么只是在计算结束时不添加零。
例如,如果产品为0.20,则显示为0.2并且在总字段中错过最后的零。但税和税后工作正常
<script>
$('document').ready(function(){
$('.input-qty').on('input', function(){
var total = 0;
var qty = $(this).val();
var price_single = $(this).parent().parent().parent().find('.input-price-single').val();
$(this).parent().parent().parent().find('.input-price-total').val(parseFloat(qty * price_single).toFixed(2));
$('.input-price-total').each(function(){
total += Number($(this).val());
});
total_t = Number(parseFloat(total).toFixed(2));
total_tax = parseFloat((total_t * 0.10) + total_t).toFixed(2);
$('.input-total').val(total_t);
$('.input-total-tax').val(total_tax);
});
});
</script>
所以我想这将是这一部分:
$(this).parent().parent().parent().find('.input-price-total').val(parseFloat(qty * price_single).toFixed(2));
$('.input-price-total').each(function(){
total += Number($(this).val());
答案 0 :(得分:1)
您的代码存在一些“错误”。 (这也在你的评论部分)。
我会尝试修复它们将答案放在一起(但是这些信用确实归功于建议它的人。)
<script>
$('document').ready(function(){
$('.input-qty').on('input', function(){
var total = 0;
var qty = $(this).val();
var parent = $(this).parent().parent().parent();
var price_single = $(parent).find('.input-price-single').val();
$(parent).find('.input-price-total').val((qty * price_single).toFixed(2));
$('.input-price-total').each(function(){
total += Number($(this).val());
});
$('.input-total').val(total.toFixed(2));
$('.input-total-tax').val((total * 1.10).toFixed(2));
});
});
</script>
我没有相应的HTML,所以我不能在小提琴或其他任何东西上尝试它,所以这完全是我的头脑。 (未测试)
您的错误存在于以下行中:
total_t = Number(parseFloat(total).toFixed(2));
$('.input-total').val(total_t);
在这些行中,您将解析的总计算结果分配给浮点数,解析为字符串然后转换为数字(这就是真正问题所在的位置)。
这意味着,您不是将字符串(具有正确的数字位数)分配给字段,而是指定一个类型为“number”的变量,该变量假设它认为格式为“正确”。
现在,如果你不想采取我所有的更正(毕竟它们是相当多的,也是未经测试的),你可能会推出类似的东西:
total_t = Number(parseFloat(total));
$('.input-total').val(total_t.toFixed(2));
这可以解决您的问题。