Триггерное нажатие (keydown) с помощью jQuery - PullRequest
7 голосов
/ 15 сентября 2011

Я сделал свою домашнюю работу и проверил много вопросов, но все еще не смог найти что-то, что смогу получить на работу.

У меня есть поисковый запрос.Когда пользователь нажимает на пример, я хочу, чтобы слово «доктор» было написано в моем поиске ввода буква за буквой.Я мог бы сделать это, изменив $ ("# search"). Val () давно, но здесь есть проблема.Когда обычно пользователь вводит в поисковую строку, появляется автозаполнение div.Это вызвано событием keydown.Если я просто изменю атрибут ввода val, div автозаполнения не выйдет, поэтому мне нужно как-то вызвать событие keydown, чтобы оно появилось.

Я нашел это решение:

$("#example").click(function() {    
    $("#search").focus();
    var e = jQuery.Event("keyup");
    e.keyCode = 50;                     
    $("#search").trigger(e);                    
});

, но не смог заставить его работать.Есть идеи, пожалуйста?

Вот как выглядит HTML:

<input type="text" id="search" />
Example: <span id="example">doctor</span>

Ответы [ 2 ]

8 голосов
/ 15 сентября 2011
$("#example").click(function() {    
    $("#search").focus();
    var e = jQuery.Event("keydown");
    e.keyCode = 50;                     
    $("#search").trigger(e);                    
});

ref: Определенный способ вызова событий нажатия клавиш с помощью jQuery

0 голосов
/ 15 сентября 2011

Лучший способ - запустить автозаполнение для события textChange , а не для нажатия клавиш вверх / вниз. Таким образом, вы можете использовать $("#search").val() простым способом, и автозаполнение будет запущено.

Дополнительный бонус: если вы используете textChange, он также запустит автозаполнение, если пользователь скопирует текст с помощью контекстного меню мыши и т. Д. (И не будет срабатывать при использовании клавиш табуляции или клавиш со стрелками)

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