動的に作成された 2 つのテキスト フィールドの値を乗算する方法を探していました。クライアント側の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 ループの最後から 2 行目までのすべてが機能します。動的に作成された乗算が機能しています。私が理解できない私のハードルは、変数「invoice_total_value」をinvoice_totalフォームコンポーネントの値にする方法です。更新されることはありません。追加される数値を parseFloat しようとし、invoice_total_value 合計変数も parseFloating しようとしました。また、型変換の問題かもしれないと思ったので、null ('') 文字列を追加して文字列に変換してから割り当ててみました。何も機能していません。それを静的テキストフィールドに再割り当てすることはできません。何か案は?私は片頭痛を起こしています... ;)