У меня есть страница, где в моем поле со списком есть сотни элементов, что очень затрудняет выбор одного элемента, который мне нужен. Есть ли хорошая замена Javascript, которая будет лучше, чем
<select id = "field-component" name = "field_component">
<option selected = "selected">1</option><option>2</option>...
</select>
Есть ли что-то с автозаполнением типа "Intellisense"?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)



У вас есть dhtmlCombo, использующий ajax для извлечения данных при заполнении поля ввода.
dhtmlxCombo - это кроссбраузерный комбинированный список JavaScript с функцией автозаполнения.
Он расширяет базовую функциональность окна выбора для соответствия требованиям самых современных веб-приложений.
dhtmlxCombo можно преобразовать из существующего HTML SELECT или заполнить с помощью JavaScript. Поддерживая AJAX, он также может получать значения списка из источника данных сервера динамически.
автозаполнение с использованием Прототип и Священный хорошо работает в этой ситуации.
Проверьте плагин Автозаполнение jQuery, он прост в использовании, вам нужно только сгенерировать серверную часть ответа JSON.
См. это демо.
В HTML 5 есть стандартное поле со списком.
В настоящее время его поддерживает только Opera, но если вы путешествуете во времени или пишете приложение только для Opera, это отличное решение :)
<input type=text list=listid>
<datalist id=listid>
<select><option>1<option>2</select>
</datalist>
Просто примечание: если поле выбора имеет текущий фокус, вы можете ввести текст на клавиатуре, и он приведет вас к выбору, начинающемуся с этого текста, поэтому при вводе слова «ken» в раскрывающемся списке штата США будет автоматически выбран вариант «Кентукки». .
Вы можете попробовать эту реализацию combobox http://www.zoonman.com/projects/combobox/
Я думаю, что бесплатная библиотека Twitter typeahead.js - лучшая библиотека автозаполнения, доступная на сегодняшний день. Проверьте это на http://twitter.github.io/typeahead.js/
Лучшее, что я видел. Жаль, что это не бесплатно :(