Ваш JS кажется немного смущенным. Вы подключаете только один обработчик событий и пытаетесь l oop поверх несвязанного селектора, который содержит только один элемент. Вы также умножаете значение, но не назначаете результат чему-либо.
Чтобы сделать это, вам нужно прикрепить обработчик событий к всем переключателям. Затем вы можете использовать свойство value
всех рад ios, чтобы удерживать число, умноженное на #sum
, чтобы получить дисконтированную сумму.
Также обратите внимание, что вам нужно где-то хранить исходную сумму ie. значение до применяет любую скидку, так что расчет всегда работает с базовой цифры. Для этого вы можете использовать атрибут data
, но учтите, что необходимо обновить этот атрибут вместе со значением.
После всего сказанного попробуйте это:
jQuery(function($) {
$('input[name="percentdiscount"]').on('change', function() {
applyDiscount();
});
$('input[type=checkbox]').click(function() {
let sum = 0;
$('input[type=checkbox]:checked').each(function() {
sum += parseFloat($(this).val());
});
$('#sum').val(sum.toFixed(2)).data('total', sum);
applyDiscount();
});
function applyDiscount() {
var pc = parseFloat($('input[name="percentdiscount"]:checked').val());
$('#sum').val(function() {
return ($(this).data('total') * pc).toFixed(2);
});
}
});
label {
display: block;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label>
<input type="checkbox" value="10.00">
£10.00
</label>
<label>
<input type="checkbox" value="5.00">
£5.00
</label>
<label>
<input type="checkbox" value="19.99">
£19.99
</label>
<div class="runningtotal">
Running CPC Total (in £): <input id="sum" type="text" readonly="true" value="0.00" data-total="0" />
</div>
<div class="agencydiscount">
<h1>Agency Discount</h1>
<label>
<input type="radio" name="percentdiscount" value="1" checked>
None
</label>
<label>
<input type="radio" name="percentdiscount" id="10percent" value="0.9">
10% Discount
</label>
<label>
<input type="radio" name="percentdiscount" id="15percent" value="0.85">
15% Discount
</label>
</div>
В качестве отступления, я бы предложил изучить основы JS, так как есть некоторые фундаментальные принципы, которые вам нужны, чтобы получить фирму gr asp из. Это руководство MDN - отличный стартер.