Вы используете присвоение значения переменной только при загрузке страницы. На самом деле вам нужно обновить значение переменной, когда ваш вход изменяется. Вот обновленный код JS:
$(document).ready(function() {
var bedroomPrice = 0;
$('input').on('change', function() {
if ($('input[name="bedrooms"]').is(':checked')) {
bedroomPrice = $('input[name="bedrooms"]:checked').data('price');
} else {
bedroomPrice = 0;
}
$('#total').html(bedroomPrice);
});
});
Теперь он проверяет цены на спальни, когда ввод изменяется, что является последним значением.
Также, если у вас есть выбор из нескольких спален, и вы хотите показать толькоцена отмеченного флажка (учитывая, что пользователь может установить только один флажок одновременно). Пользователь this
(который является текущим элементом элемента) вместо input[name="bedrooms"]
. Таким образом, код JS будет выглядеть следующим образом:
$(document).ready(function() {
var bedroomPrice = 0;
$('input').on('change', function() {
if ($(this).is(':checked')) {
bedroomPrice = $('input[name="bedrooms"]:checked').data('price');
} else {
bedroomPrice = 0;
}
$('#total').html(bedroomPrice);
});
});
Надеюсь, он будет работать для вас.