我一直在寻找一种方法来将两个动态创建的文本字段的值相乘。我发现使用以下作为客户端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 ('') 字符串以将其转换为字符串然后分配它。没有任何效果。我只是无法将其重新分配给静态文本字段。有任何想法吗?我得了偏头痛……;)