Как определить 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 или число большее, то кнопка должна заблокироваться.

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

Как починить?
  • Вопрос задан
  • 3934 просмотра
Решения вопроса 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.
Ответ написан
Ваш ответ на вопрос

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

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