Задать вопрос
@sergyo007
Отличный IT-шник и хреновый программист

Калькулятор скидки на js, как его заставить работать?

Проблема в коде, грыз долго, но что-то не получается, в данном коде:
<form id="year">
    <input type="radio" id="radio-1" name="group" value="1"/>
    <input type="radio" id="radio-2" name="group" value="2"/>
    <input type="radio" id="radio-3" name="group" value="3"/>
	
	<div class="company">
		<select name="company" id="company">
			<option value="1500">1</option>
			<option value="5300">до 5</option>
			<option value="10100">до 10</option>
			<option value="12000">до 25</option>
			<option value="17000">до 50</option>
			<option value="0">50+</option>
		</select>
	</div><br>
	<input type="label" id="mult" name="789" maxlength="300" readonly><br>
	<input type="label" id="itog" name="789" maxlength="300" readonly>
</form>

(function ($, undefined) {
    var year = $("#year");
    var company = document.getElementById('company').value;
    var itog = document.getElementById('mult').value;
    var mult = document.getElementById('itog').value;
 
    // Подписываемся на клик по форме и делегируем событие на элемент радио внутри формы с id radio-1
    year.on("click", "#radio-3", function (event) {
        mult = company*year;        
        itog = mult-(mult*0.2);
     //   alert (itog);
    });
    year.on("click", "#radio-2", function (event) {
        mult = company*year;        
        itog = mult-(mult*0.15);
     //   alert (itog);
    });
    year.on("click", "#radio-1", function (event) {
        itog = company;
     //   alert (itog);
    });
    alert (mult);
    mult.value = mult;
    itog.value = itog;
})(jQuery);

в итоге должно получиться следующее:
1. с помощью селекта выбираем число компаний
2. выбираем число лет
3 на выходе получаем на mult - умножение первого на второе, на itog-е от mult-а скидку 15 и 20% при выборе 2 и 3 года.
Увы js не мое, и изучать пытался и готовые варианты заставить как-то работать, но увы не выходит каменный цветок.
  • Вопрос задан
  • 1024 просмотра
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 2
@dimoff66
Кратко о себе: Я есть
year у вас и элемент и значение, вы умножаете на элемент, поэтому каменный цветок и застрял.
Ответ написан
@vasiiil
Вам это нужно?
$(document).on('click', '.radio', function() {
	var itog = $('#itog'),
      mult = $('#mult'),
      $this = $(this),
      multiplier = $('#company').find(':selected').val() * $this.data('year');
      
  mult.val(multiplier);
  itog.val(multiplier * (1 - $this.data('mult')));
});

<form id="year">
    <input class="radio" type="radio" id="radio-1" name="group" data-year="1" data-mult="0"/>
    <input class="radio" type="radio" id="radio-2" name="group" data-year="2" data-mult="0.15"/>
    <input class="radio" type="radio" id="radio-3" name="group" data-year="3" data-mult="0.2"/>

				<div class="company">
					<select name="company" id="company">
						<option value="1500">1</option>
						<option value="5300">до 5</option>
						<option value="10100">до 10</option>
						<option value="12000">до 25</option>
						<option value="17000">до 50</option>
						<option value="0">50+</option>
					</select>
</div><br>
<input type="label" id="mult" name="789" maxlength="300" readonly><br>
<input type="label" id="itog" name="789" maxlength="300" readonly>
</form>
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы