Я хочу, чтобы функция выполнялась, когда кто-то вводил число от четырех до пяти цифр в отдельном поле ввода.
Вот мой код:
$('body').on('keyup click','input[name=id]',function(){
if($(this).val().length>3){
console.log('Hello');
}
});
Проблема, с которой я сталкиваюсь, заключается в том, что input[name=id]
имеет datalist
для помощи в выборе известных идентификаторов. Поэтому, когда кто-то вводит все четыре цифры, такие как 3043, будет выполняться функция выше. Если кто-то набирает 30, а затем стрелка вниз до опции 3043 datalist и нажатие на ввод, оно будет выполняться.
НО
Если кто-то набирает 30, а затем стрелка вниз до 3043 и нажимает TAB, он не будет выполняться. Если кто-то набирает 30, а затем нажимает на параметр 3043 datalist, он не будет выполняться.
Мне нужно, чтобы он мог поймать все четыре возможных действия.
Попробуйте использовать событие ввода. Это именно то, что вы хотите. Событие ввода поддерживается всем браузером, но datalist не является (все браузеры, поддерживающие datalist, также поддерживают входное событие).
$('#id').on('input',function(){
if($(this).val().length>3){
console.log('Hello');
}
});