Проверьте содержимое поля ввода при выходе из клавиатуры / курсора - PullRequest
0 голосов
/ 28 октября 2019

У меня есть сгенерированное системой поле ввода, которое ожидает, что его значение будет числовым и более 1000.

Это HTML для поля

<input type="text" name="fr_goal" id="fr_goal" value="" size="15" maxlength="15">

У меня работает этот JS, который позволяет мне пройти почти весь путь, НО на самом деле я не могу сказать, является ли значение больше или равно минимальному значению 1000, которое мне требуется.

               $('#fr_goal').on('keyup', function(evt) {
                    $("#fr_goal").removeClass('don-active');
                    var value = evt.target.value;
                    if (value.length === 0) {
                        evt.target.className = 'invalid-amount';
                        return;
                    } 
                   else if ($.isNumeric(value) && value >= 1000) {
                        evt.target.className = 'valid-amount';

                    } 
                    else {
                        evt.target.className = 'invalid-amount';
                        $(this).val('');
                        $(this).attr('placeholder', 'VIP goal must be greater than $1,000');
                    }
                }); 

Теперьelse if - это мой желаемый результат, в идеале я знаю, что он числовой и больше 1000.

Но происходит то, что, как только я ввожу число, по умолчанию используется другой случай, поскольку число меньше 1000.

Кто-нибудь знает, как прослушать этот вход, если он не «активен» или не используется, чтобы увидеть, что в него вставлено?

В идеале, мне не нужно полагатьсяна отправку формы, чтобы получить содержимое поля, а затем представить сообщение об ошибке. Я хотел бы иметь возможность делать все это в режиме реального времени

Любая помощь очень ценится!

1 Ответ

0 голосов
/ 28 октября 2019

Спасибо Кэлвину за предложение размытия.

Я почти полностью сохранил исходный вопрос, просто подправил остальное, чтобы искать только цифры.

Как только поле вводанеактивна эта функция запускается и отлично решает мою проблему.

$('#fr_goal').blur(function(eval) { 
                var userInput = eval.target.value;
                console.log("the inputted amount was" + userInput);
                if (userInput >= 1000) {
                    eval.target.className = 'valid-amount';
                }
                else {
                    eval.target.className = 'invalid-amount';
                    $(this).val('');
                    $(this).attr('placeholder', 'VIP goal must be greater than $1,000');
                }
            });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...