计算文本框中的值的总和

时间:2014-09-11 02:22:26

标签: javascript asp.net

我的ASP.Net页面上有一个屏幕,根据用户的选择,它们提供1到5个文本框。这些框允许用户输入金额。

当用户进入屏幕时,根据特定条件,显示一定数量的这些编辑框。它们没有隐藏......如果我想要3个盒子,那么屏幕上只有3个盒子。

在javascript中,当用户输入金额时,会显示“总计”编辑框,汇总每个框中的值。

因此,当用户键入时,总更新中的值将计算所有文本框的总计:

我用:

onkeyup="calculateTotal()"
编辑框上的

为此,我使用以下代码:

function calculateTotal() {

        var amt0 = $('.txtAmount0').val();
        var amt1 = $('.txtAmount1').val();
        var amt2 = $('.txtAmount2').val();
        var amt3 = $('.txtAmount3').val();
        var amt4 = $('.txtAmount4').val();


        var amt = Number(amt0);
        if (!isNaN(amt1))
            amt += Number(amt1);

        if (!isNaN(amt2))
            amt += Number(amt2);

        if (!isNaN(amt3))
            amt += Number(amt3);

        if (!isNaN(amt4))
            amt += Number(amt4);

        $('.txtTotalAmount').text('$' + amt);

    }

第一个问题是,我似乎在计算中失去了一些精确度:

enter image description here

我不确定为什么我会得到一个奇怪的舍入问题,当我所做的只是总结时。

此外,它看起来有点脏,如果我添加了更多的盒子,我需要修改代码。

这段代码有更好的工作方式吗?

1 个答案:

答案 0 :(得分:1)

你可以这样:

  var sum = 0;
  $("input[class*='txtAmount']").each(function() {
           if ($.isNumeric($(this).val()) ) {
        sum += Number($(this).val());
        }
    });

   $('.txtTotalAmount').text('$' + sum.toFixed(2));