new Choices(element, options) Создаёт
новый экземпляр компонента. В качестве первого аргумента принимает
DOM-элемент <select> или <input>,
вторым аргументом — объект конфигурации. Именно через этот конструктор
запускается вся логика библиотеки, включая построение внутреннего
состояния, обработку DOM и регистрацию событий.
destroy() Полностью уничтожает
экземпляр, возвращая исходный DOM-элемент к состоянию до инициализации.
При вызове происходит:
<select> (если он
использовался);Метод применяется при динамическом удалении компонентов или полной переработке интерфейса.
setChoices(choices, value, label, replaceChoices)
Базовый метод для программного наполнения списка опций.
Параметры:
choices — массив объектов вариантов;value — ключ, содержащий значение (например,
id);label — ключ отображаемого текста;replaceChoices — булево значение, определяющее замену
текущего списка.Поведение:
replaceChoices = true текущие варианты удаляются и
заменяются новыми;false новые элементы добавляются к
существующим.Используется при загрузке данных с сервера или динамической фильтрации.
clearChoices() Удаляет все доступные
варианты выбора, не затрагивая выбранные элементы (если они уже
активированы).
Основное применение:
clearStore() Полностью очищает
внутреннее хранилище Choices.js, включая:
Фактически возвращает компонент в состояние «пустого контейнера» без разрушения экземпляра.
setValueByChoice(value) Устанавливает
выбранное значение на основе значения элемента из списка.
Особенности:
setValue(value) Универсальный метод
установки значения. Может принимать как одиночное значение, так и массив
(в режиме multiple).
Поведение зависит от конфигурации:
removeActiveItems(item) Удаляет
активный (выбранный) элемент.
Используется в режимах multiple select для:
removeHighlightedItems() Снимает
выделение с текущего активного (подсвеченного) элемента списка.
Применяется при навигации с клавиатуры или сбросе фокуса внутри
dropdown.
showDropdown() Открывает выпадающий
список вариантов.
При вызове:
Метод часто используется при программном контроле интерфейса поиска.
hideDropdown() Закрывает выпадающий
список.
Действия:
Используется при потере фокуса или внешнем управлении UI.
highlightItem(item) Устанавливает
визуальное выделение на конкретный элемент списка.
Особенности:
unhighlightItem() Снимает текущее
выделение с элемента списка. Применяется при смене контекста поиска или
закрытии dropdown.
enable() Активирует компонент после
отключения.
Возвращает:
disable() Полностью отключает
компонент.
Эффект:
При этом внутренние данные сохраняются.
getValue() Возвращает текущее значение
компонента.
Формат результата зависит от режима:
Дополнительно может возвращать полный объект выбора, если включены соответствующие опции конфигурации.
setChoiceByValue(value) (в
некоторых версиях API) Альтернативный метод установки значения по
значению option. Используется для прямого выбора элемента без
необходимости обращаться к DOM.
setHighlightedChoice(value)
Устанавливает выделение на элемент, соответствующий переданному
значению. Часто используется при синхронизации поиска и клавиатурной
навигации.
Некоторые методы не всегда документируются как публичные, но встречаются в реальной работе с библиотекой и её расширениях.
refresh() Перестраивает DOM и
синхронизирует внутреннее состояние с текущими данными.
Применяется при:
reset() Сбрасывает выбранные значения к
начальному состоянию, заданному при инициализации.
Отличие от clearStore():
reset() восстанавливает исходные данные;clearStore() полностью очищает состояние.setSearchTerm(value) Программно задаёт
строку поиска внутри dropdown.
Поведение:
Используется при внешнем управлении поиском.
clearSearch() Очищает поисковый ввод и
возвращает список к исходному состоянию.
Методы Choices.js образуют три логических слоя:
Такое разделение позволяет комбинировать программное управление компонентом без необходимости вмешиваться в DOM напрямую, сохраняя предсказуемость состояния и консистентность UI.