Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Выпадающий список с возможностью ввода текста (https://javascript.ru/forum/dom-window/12578-vypadayushhijj-spisok-s-vozmozhnostyu-vvoda-teksta.html)

LA_ 24.10.2010 11:22

Выпадающий список с возможностью ввода текста
 
Подскажите, пожалуйста, как создать выпадающий список с возможностью ввода текста.
Т.е. человек должен иметь возможность:
1) ввести любой текст сам либо
2) выбрать значение из списка
при этом если он вводит значение сам, то должны отфильтровываться значения из списка и предлагаться ему.
(что-то типа google suggest, только список для выбора должен быть доступен сразу).

Спасибо.

MikhailGirshberg 27.10.2010 14:19

думал такое применять
 
Получилось не полностью и очень сложно: пришлось частично накрывать стандартный select текстовым input-ом - и перетаскивать изменения по событиям. По браузерам совмещать замаялся.
В результате от применения отказался.

Если скрипт более-менее рабочего примера откопаю (не факт, что сохранился) - отпишусь. Воспроизводить с самого начала просто лень.

LA_ 27.10.2010 14:26

думал, что в каком-нибудь jquery что-то подобное есть :)

может, тогда сделать просто поле для ввода и dropdown - если значение введено, то использовать его и игнорировать значение в dropdown? не так красиво, зато просто.

2de 27.10.2010 14:38

В гугле ничего сложного нету, обычный автокомплитер. Обычный инпут и див под ним с данными (с возможностью скрывать и показывать). Проблема только в фильтрации, можно пробегать по диву искать элементы в которых тект совпадает с тем что ввели и скрывать те которые не совпадают.

MikhailGirshberg 27.10.2010 15:00

Цитата:

Сообщение от LA_ (Сообщение 76139)
думал, что в каком-нибудь jquery что-то подобное есть :)

может и есть - в плагинах - просто не знаю. Общее соображение таково: в мастдае реализовано => значит кому-то наверняка хотелось и на страничку => скорее всего, кто-то сделал.
Цитата:

Сообщение от LA_ (Сообщение 76139)
может, тогда сделать просто поле для ввода и dropdown - если значение введено, то использовать его и игнорировать значение в dropdown? не так красиво, зато просто.

Скорее наоборот - если ничего не выбрано (а лучше - выбран специальный пункт "другое") - вместо select-а показать input. А вот его результат "прикопать" и вставить в виде option-а в select.

MikhailGirshberg 27.10.2010 15:02

2de,
да, конечно. Только по-моему, это получается почти полная имитация работы select-а?

Или я гуглил плохо ;-?

monolithed 27.10.2010 15:30

В jQuery есть автокомплитор
http://docs.jquery.com/Plugins/autocomplete
http://jqueryui.com/demos/autocomplete/


Часовой пояс GMT +3, время: 20:50.