Задать вопрос

Как определить JS вводимое число больше или меньше

Есть поле
<input type="text" name="bonus_card" id="bonus_card" />
и кнопка <button id="sub_minus">Списать</button>

и скриптик до которого я догадался
$('#bonus_card').keypress(function(){
						var f = $('#bonus_card').val();
						if( f < 0 || f >= 51 ) { $('#sub_minus').attr('disabled', 'disabled'); }
						else { $('#sub_minus').attr('disabled', ''); }
					});

если в поле "bonus_card" вводить цифры, то должно быть сравнение, например, если ввожу 51 или число меньшее, то кнопка "Списать" - должна быть активной, а если 52 или число большее, то кнопка должна заблокироваться.

Сейчас непонятно как... если вводишь число состоящее из одной цифры, то кнопка активна, если из двух и более, то кнопка блокируется.

Как починить?
  • Вопрос задан
  • 3974 просмотра
Подписаться 2 Оценить 1 комментарий
Решения вопроса 2
avalak
@avalak
(function () {
    $('#bonus_card').on('change paste keyup', function(evt) {
        var f = $(evt.target).val();
        $('#sub_minus').prop('disabled', f < 0 || f >= 51); 
    });
})();
Ответ написан
@artishok
кратко
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
  1. Функцию нужно привязать к событию keyup, т.к. событие keypress (аналогично событию keydown) будет происходить до обновления данных. Например, вы ввели в поле 123, а вам вернется 12.
  2. Чтобы изменять такие динамические свойства (не атрибуты), как, например, disabled, нужно использовать метод prop.
Ответ написан
Ваш ответ на вопрос

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

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