コードが起動していますが、このコードの削除部分は機能しません。削除部分は、idとその情報がロードされると計算に含まれないように、オブジェクトから与えられたidを削除する必要があります。しかし、それはまだ計算にそれを保持しません。私はコミュニティによって提供されたこれを回避するいくつかのソリューションを試しましたが、何も機能していません。誰もが何か考えを得た。JavascriptオブジェクトがIDを削除していない計算フォーム
var productIds = {}
function product_analysis(address, id, box) {
productIds[id] = true; // store all id's as the totals are calculated
if (box.checked) {
$('#product_' + box.alt).load(address);
}
else {
$('#product_' + box.alt).load('http://www.divethegap.com/update/blank2.html');
(delete productIds[id]);
}
document.getElementById('product_quantity_PRI_' + box.alt).value = box.value;
};
function product_totals(id) {
productIds[id] = true; // store all id's as the totals are calculated
var quantity = $('product_quantity_' + id).value;
var price = $('product_price_' + id).value;
var duration = $('product_duration_' + id).value;
var dives = $('product_dives_' + id).value;
var hire = $('product_hire_' + id).value;
Number($('product_price_total_' + id).value = price * quantity);
Number($('product_duration_total_' + id).value = duration * quantity);
Number($('product_dives_total_' + id).value = dives * quantity);
Number($('product_hire_total_' + id).value = hire * quantity);
function $(id) {
return document.getElementById(id);
}
var totalPriceTotal = 0;
var totalDurationTotal = 0;
var totalDivesTotal = 0;
var totalHireTotal = 0;
for (var id in productIds) {
// multiply by 1 to make sure it's a number
totalPriceTotal += $('product_price_total_' + id).value*1;
totalDurationTotal += $('product_duration_total_' + id).value*1;
totalDivesTotal += $('product_dives_total_' + id).value*1;
totalHireTotal += $('product_hire_total_' + id).value*1;
}
$('GT_total_price').value = totalPriceTotal;
$('GT_total_duration').value = totalDurationTotal;
$('GT_total_dives').value = totalDivesTotal;
$('GT_total_hire').value = totalHireTotal;
function $(id) {
return document.getElementById(id);
}
}
どのようにこれらの2つの関数が呼ばれますか?より多く見ることなく、問題が何であるかを知ることは難しいです。 – Pointy
また、 "product_totals()"で定義した "$"関数は、他の場所でjQueryを使用しているので、やや歪んでいます。 – Pointy
最初の関数 'product_analysis(address、id、box)'は、ページ上のオプションによってonClickと呼ばれます。 ファンクションproduct_totals(id)は、最初の関数でロードされた製品のロードが完了すると呼び出されます。 –