@mira3a

Как ограничить число в input в зависимости от выбранного radio jQuery?

Приветствую! В общем суть вопроса такая.
Есть radio где пользователь выбирает количество дней, и получает сумму, а так же input, в который вводит количество бонусов.
Как сделать так, что бы он не мог ввести бонусов больше, чем value выбранного radio
<input type="radio" name="day_premium" value="100" id="day_premium1" class="form-radio">
<label for="day_premium1">1 день</label>
<input type="radio" name="day_premium" value="500" id="day_premium2" class="form-radio">
<label for="day_premium2">7 дней</label>

<input type="text" value="0" size="20" name="bonus" id="bonus" data-max="0">

jQuery(document).ready(function ($) {
			$("#userForm").change(function() {
				//основная стоимость
				var totalPrice   = 0,
					values       = [];
				$('input[type=checkbox], input[type=radio]').each( function() {
					if( $(this).is(':checked') ) {
						values.push($(this).val());
						totalPrice += parseInt($(this).val());
						jQuery("#bonus").attr("data-max", totalPrice);
						$('#userForm').on('input', '#bonus', function(){
							var value = this.value.replace(/[^0-9]/g, '');
							if (value < $(this).data('min')) {
								this.value = $(this).data('min');
							} else if (value > $(this).data('max')) {
								this.value = $(this).data('max');
							} else {
								this.value = value;
							}
						});

					}
				});
			});
		});
  • Вопрос задан
  • 54 просмотра
Пригласить эксперта
Ответы на вопрос 2
diasasx
@diasasx
Веб разработчик, аналитик
Нужно получить значение выбранного max value в переменную, при вводе в input сравнивать число с max value, если оно больше max value то присваивать значению input выбранное max value.

Тут скорей вопрос в логике а не в коде, я бы жестко прописал select к примеру с вариантами дней - при выборе варианта автоматом считается сумма. Зачем пользователю что то вводить? Как вариант вместо input поставить range с ограничением согласно max value.
Ответ написан
@mira3a Автор вопроса
По сути все работает, но! До первого ввода в input #bonus, т.е. переключаем radio, начинаем вводить input#bonus и значение ограничивается выбранным radio, но если потом radio переключить, то все, максимально значение остается тем, что выбрали первый раз ((((
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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