У меня есть простой код флажка, 2 флажка на группу.
<div class='product-addon'>
<p>Interfejsy</p>
<label>
<input id='option0' type='checkbox' name='Interfejsy' value='150.00'>
Moduł rozszerzenia 1: 2x RS232 <span class='addon-price'>150,00</span>
</label>
<label>
<input id='option1' type='checkbox' name='Interfejsy' value='370.67'>
Moduł rozszerzenia 2: WiFi <span class='addon-price'>370,67</span>
</label>
</div>
<div class='product-addon'>
<p>BAZA</p>
<label>
<input id='option0' type='checkbox' name='BAZA' value='60.00'>
Rozszerzenie bazy PLU o 2000 kodów <span class='addon-price'>60,00</span>
</label>
<label>
<input id='option1' type='checkbox' name='BAZA' value='80.00'>
Rozszerzenie bazy PLU o 4000 kodów <span class='addon-price'>80,00</span>
</label>
</div>
Мой вопрос: Как я могу получить общую сумму цены (checkbox.val ()), когда пользователь нажимает флажок?Например, пользователь устанавливает флажок в первой группе со значением = 150,00, и устанавливает флажок во второй группе со значением = 80,00?Общая сумма должна быть 230,00 Важно: пользователь может выбрать только один флажок в группе.
У меня есть этот код js:
var totalSum = 0;
$("input:checkbox").on('click', function() {
var $box = $(this);
if ($box.is(":checked")) {
var group = "input:checkbox[name='" + $box.attr("name") + "']";
var addonPrice = parseFloat($box.val());
$(group).prop("checked", false);
$box.prop("checked", true);
} else {
$box.prop("checked", false);
}
totalSum += addonPrice;
console.log(totalSum);
});
, но переменная totalSum всегда становится выше, когда я нажимаю любойдобавить.Например, я нажимаю флажок в группе 1 со значением = 150, следующий щелчок флажок в группе 2 со значением = 60, totalSum = 210 - это хорошо, но когда я нажимаю снова какой-то флажок, это добавляет следующее значение.
Я просто не хочу что-то вроде этого: 1) Флажок щелчка пользователя в группе 1 со значением = 150 2) Флажок щелчка пользователя в группе 2 со значением = 60 3) Общая сумма 210 4) Флажок щелчка пользователя вгруппа 2 со значением = 80 5) общая сумма 230, а не 290
Спасибо за любые предложения