Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.09.2008, 13:04
Аватар для SergeiAzarov
Интересующийся
Отправить личное сообщение для SergeiAzarov Посмотреть профиль Найти все сообщения от SergeiAzarov
 
Регистрация: 27.02.2008
Сообщений: 13

Подбор вариантов при вводе.
Наверное все видели что на многих поисковиках (и не только) при наборе текста в поле ввода снизу появляется всплывающее с вариантами. Расскажите плз как это реализовано концептуально?

Пока что мне приходит в голову только такая схема:
<input type="text" value=""><br/>
<select style="display:none"></select>

Когда начинается набор в поле ввода (onkeypressed) значение this.value передается в скрипт который сопоставляет введенное значение с БД и если найдено соответствие записям отдает в список первые X(или меньше) подходящих значений, а также меняет параметр size на соответствующее кол-во значений.

А вот дальше у меня ступор, как осуществляется переход и выбор между полями?
Все что приходит на ум это отслеживать нажатие "стрелочки вниз" в поле ввода и переводить фокус в таком случае на селект. В селекте же отслеживать нажатие клавиш и переводить фокус и нажатое значение в поле ввода.

А как правильнее?
Ответить с цитированием
  #2 (permalink)  
Старый 06.09.2008, 15:09
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Это не обязательно должен быть список <select>. Чаще всего это <div> стилизованный под список. Алгоритм, который вы привели - правильный.

Только обычно значения ввода передаются по таймауту в функцию, опрашивающую сервер, для того, чтоб ввод слова не провоцировал запросы на каждом символе.

В поле ввода перехватываются нажатия стрелок вниз-вверх и подставляется "текущее" значение (или подставляется при нажатии [enter]).

При нажатии мышью на элемент списка автодополнения тоже подставляется это значение в поле ввода.

В принципе эта задача довольно тривиальна и не очень сложна.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
смена картинок при нажатии sdff Общие вопросы Javascript 15 08.02.2014 17:08
как при открытии окна закрыть предыдущее Евдокимова Events/DOM/Window 3 16.09.2008 17:12
изменение рисунка в меню при помощи Javasripta Maxim Общие вопросы Javascript 1 05.09.2008 14:59
Firefox: перехватить соббытие при перетаскивании текста no_alex Общие вопросы Javascript 9 21.08.2008 18:02
Не отрабатывает событие onmouseout при внедрении нового слоя ilshat Элементы интерфейса 3 28.07.2008 06:27