Добрый день. Есть инпут, в котором пользователь должен ввести ровно 18 символов. После этого автоматически должна запускаться функция с таймером обратного отсчета. Если написать что-то подобное:
$("#elem").keyup(function() {
var counter = $("input").val();
if (counter.length >= 18) { // или counter.length === 18, без разницы
/* функция с таймером */
}
то оно нормально работает, если символы водить медленно. Если же ввести слишком быстро, случайно нажав при этом лишние клавиши, то таймер отсчитывает числа не по заданному интервалу в 1 секунду, а гораздо быстрей и урывками.
Можно ли как-то жестко задать условие, что если введено ровно 18 символов, то все прочие нажатия клавиш игнорируются, а то сейчас выходит так, что даже когда введено 18 символов, а клавиши продолжают нажиматься, то эти нажатия тоже учитываются.