在一个字段javascript上缺少零美分

missing zero in cents on one field javascript

本文关键字:javascript 字段 一个      更新时间:2023-09-26

有一个表单字段缺少分中的零。

其他都可以(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());

你的代码有一些"错误"的地方。(也都在你的评论区)。

我会试着把他们的答案放在一起(但功劳真的要归功于提出建议的人)

<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));