0

我一直在寻找一种方法来将两个动态创建的文本字段的值相乘。我发现使用以下作为客户端JS函数。total_inv_items_field 是一个隐藏字段,随着动态元素的创建而增加,我使用该值来控制 for 循环:

    function calcTotals()
    {
       var totalinvcitems = document.getElementById('total_inv_items_field').value;
       var currinvcitem = 0;
       var invoice_total_value = 0;

       for (var invcitemcounter=0; invcitemcounter<totalinvcitems; invcitemcounter++)
       {
          currinvcitem = currinvcitem + 1;

          var quantity = document.getElementById('qty' + currinvcitem).value;
          var price = document.getElementById('cost' + currinvcitem).value;
          var totallineitem = quantity * price;
          document.getElementById('totallinefee' + currinvcitem).value = totallineitem;
          invoice_total_value = invoice_total_value + totallineitem;
       }
       document.getElementById('invoice_total').value = invoice_total_value;
    }

直到 for 循环的倒数第二行的每一件事都有效。动态创建的乘法正在工作。我无法弄清楚的障碍是如何让变量“invoice_total_value”成为 invoice_total 表单组件的值。它永远不会更新。我尝试 parseFloat 正在添加的数字并尝试 parseFloating invoice_total_value sum 变量。我还认为这可能是类型转换问题,所以我尝试向其添加一个 null ('') 字符串以将其转换为字符串然后分配它。没有任何效果。我只是无法将其重新分配给静态文本字段。有任何想法吗?我得了偏头痛……;)

4

1 回答 1

0

如果您的 id 元素invoice_total不是输入字段,则执行以下操作:

document.getElementById('invoice_total').innerHTML = invoice_total_value;
于 2013-03-15T03:58:23.263 回答