Пользовательское управление стрелкой автозаполнения - PullRequest
0 голосов
/ 30 июля 2011

Я пытаюсь сделать пользовательский ввод автозаполнения (я знаю об автозаполнении пользовательского интерфейса jquery, но я решил написать простой).Все прошло хорошо, я сделал все "общее" - отправил данные в какой-то скрипт .php, получил предложения.Затем я включил выбор элемента по щелчку мыши, а также провел некоторую навигацию с помощью клавиш «стрелка вниз», «стрелка вверх» и «ввод».Но я застрял с амбицией включить навигацию «удерживая \ стрелку вверх» (пролистывая).Обработчик моего ввода прослушивает событие keyup, и я прекрасно понимаю, что все, что мне нужно, это событие keypress, потому что оно поддерживает удержание клавиши.Но keypress работает только для печатных символов, которые не включают стрелку вниз \ стрелка вверх.Итак, вопрос: как я могу заставить его работать без keypress, или я могу как-то переопределить ключи, поддерживаемые этим событием?

Спасибо всем, я нашел решение.Хотя keypress предназначается только для печатных символов, последние версии Opera & Firefox 5 поддерживают его.Но Chrome (и, вероятно, Safari, поскольку они очень похожи) не делает, тогда как keydown дает нужный мне результат.

Ответы [ 2 ]

2 голосов
/ 30 июля 2011

Если нет способа преодолеть трудность keypress, попробуйте что-нибудь подобное. Это псевдокод. Я не обнаружил все коды клавиш.

var keyStop
onkeydown = function(){
  keyStop = setInterval(function(){scrollDown()},250);
}
onkeyup = function(){
  clearInterval(keyStop);
}
0 голосов
/ 01 августа 2011

Если вы по какой-то причине застряли в своей разработке, я бы порекомендовал Better Autocomplete , который является легким плагином jQuery, который легко настроить.

...