@Pulychuk

Как сделать перерасчет при активных радио кнопках?

Перейдя на jsfiddle Вы лучше поймете суть.
Постараюсь объяснить понятно. За код прошу не ругать.
Есть 3 этапа для подсчета стоимости. 1 и 3 состоит из радио кнопок. 2 из выпадающего списка.
По умолчанию "Опции 1.1", "Опции 2.1", "Опции 3.1" активная.
Пока опция 3.1 активная нужно стоимость сбрасывать на 0, независимо от выбранных опций с этапа 1 и 2.
Когда мы выбираем "Опция 3.2" или "Опция 3.3" нужно перечислить стоимость, в зависимости от активных кнопок на этапе 1-2.
К примеру на 1 этапе мы выбрали "Опция 1.2", на 2 - "Опция 2. 2", на 3 этапе если активна кнопка "Опции 3.1", то стоимость будет 0 (это работает). Но если выбрать "Опции 3.2", то стоимость подсчитает только с этой кнопки. Для корректного подсчета нужно еще раз нажать на нужные опции на 1 и 2 этапе.

И здесь собственно вопрос, как сделать чтобы стоимость считалась автоматически, без лишнего клика на опции (этап 1-2) когда они и так активны

Код который получился на jsfiddle.
  • Вопрос задан
  • 86 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Создаёте функцию расчёта полной суммы, с учётом всех условий, и назначаете её в качестве обработчиков событий всем элементам, от значений которых сумма зависит. Так будет гораздо проще и короче, чем то, что у вас есть сейчас:

function recalc() {
  const register = +$('[name="radio-register"]:checked').data('value');

  $('#price_result, #price1').text(register
    ? register +
      +$('#count-class option:selected').data('value') +
      +$('[name="radio-znak"]:checked').data('value')
    : 0
  );
}

$('input[name="radio-znak"], input[name="radio-register"], #count-class').change(recalc);
recalc();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы