Jquery вызовите на вкладке datalist или войдите на вход

0

Я хочу, чтобы функция выполнялась, когда кто-то вводил число от четырех до пяти цифр в отдельном поле ввода.

Вот мой код:

$('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, он не будет выполняться.

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

  • 0
    добавить изменение в вызов jQuery .on?
Теги:

1 ответ

1
Лучший ответ

Попробуйте использовать событие ввода. Это именно то, что вы хотите. Событие ввода поддерживается всем браузером, но datalist не является (все браузеры, поддерживающие datalist, также поддерживают входное событие).

$('#id').on('input',function(){
    if($(this).val().length>3){
        console.log('Hello');
    }
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню