有很多方法可以解決這個問題。作爲提醒之前,我絕對不要在客戶端執行諸如「計算價格」之類的操作。也就是說,您可以計算價格以便向用戶顯示,但任何實際計算都應在服務器端完成(因爲客戶端可以調整和操作表單提交)。
我創建了一個簡單的例子,它將對選中的複選框的結果進行比較(並簡單地顯示結果)。有很多方法可以操縱這些代碼以適應您的目的。我已經使用了jQuery,但是還有其他一些有趣的選項可用於解決這個問題(例如,查看KnockoutJS)。
<input type="checkbox" class="adjust one" data-value="1.00" id="so1" /> <label for="so1">$1.00</label> <br/>
<input type="checkbox" class="adjust two" data-value="2.00" id="so2" /> <label for="so2">$2.00</label><br/>
<input type="checkbox" class="adjust one" data-value="3.00" id="so3" /> <label for="so3">$3.00</label>
<p>
Total: <span class="total"></span>
</p>
然後,你想包括下面的JavaScript(以及jQuery庫)。
var total;
var calculateTotal = function() {
total = 0.0;
$('input[type="checkbox"]:checked').each(function() {
total += parseFloat($(this).data('value'));
});
$('.total').text(total);
};
$(document).ready(function() {
$('input[type="checkbox"]').live('change', function() {
calculateTotal();
});
calculateTotal(); //do it for initial price
});
calculateTotal()將計算基於選擇匹配其對應的複選框(類型複選框的輸入)總「選中」。然後這將從每個複選框中提取數據屬性「值」,並根據該數字計算總數。你的問題的邏輯可能會有所不同,但只需調整calculateTotal應該處理這個問題。最後,只要複選框「更改」(最初一次),就會調用calculateTotal函數。
希望這應該是一個很大的幫助,讓你啓動和運行。這是一個JSFiddle現場演示。
'
\t \t \t \t '所以如果您選擇郵件收集和呼叫應答, d的折扣爲229美元,而不是248美元,但呼叫轉移總是15美元。 – pikelet