Это не обязательно должен быть список <select>. Чаще всего это <div> стилизованный под список. Алгоритм, который вы привели - правильный.
Только обычно значения ввода передаются по таймауту в функцию, опрашивающую сервер, для того, чтоб ввод слова не провоцировал запросы на каждом символе.
В поле ввода перехватываются нажатия стрелок вниз-вверх и подставляется "текущее" значение (или подставляется при нажатии [enter]).
При нажатии мышью на элемент списка автодополнения тоже подставляется это значение в поле ввода.
В принципе эта задача довольно тривиальна и не очень сложна.
|