jQuery UI Autocomplete

Создание виджета Autocomplete

Чтобы создать элемент управления автозаполнением, следует вызвать метод autocomplete() для соответствующего элемента input.

...
<input id="autocomp"/>
...
<script type="text/javascript">

    $(function() {

        var array = ["Астра", "Нарцисс", "Роза", "Пион", "Примула", "Подснежник", "Мак", "Первоцвет", "Петуния", "Фиалка"];

        $('#autocomp').autocomplete({ source: array })

     });

</script>

Использование массива объектов в качестве источника данных

В качестве источника элементов списка автозаполнения вместо строк могут использоваться массивы объектов.

$(function() {
    var array = [{label: "Астры (бордовые)", value: "Астры"}, 
			       {label: "Нарциссы(белые)", value: "Нарциссы"}, 
			       {label: "Розы (розовые)", value: "Розы"}, 
			       {label: "Пионы (розовые)", value: "Пионы"}]
            
    $('#autocomp').autocomplete({
                source: array
    })
});

Использование дистанционного источника данных

Опция source,  обеспечивает возможность выбора самых различных источников данных.

Как только средству автозаполнения понадобятся данные, jQuery UI выполнит HTTP-запрос по указанному URL-адресу, используя метод GET.

$(function() { 
    $('#autocomp').autocomplete({
                source: 'phphandler.php'
    })	
});

Использование функции в качестве источника данных

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

$(function() {
	var array = ["Астра", "Нарцисс", "Роза", "Пион", "Примула",
			      "Подснежник", "Мак", "Первоцвет", "Петуния", "Фиалка"];
           
    $('#autocomp').autocomplete({
                source: function(request, response) {
                    var term = request.term;
                    var pattern = new RegExp("^" + term, "i");
                    
                    var results = $.map(array, function(elem) {                       
                        if (pattern.test(elem)) {
                            return elem;
                        }
                    })                    
                    response(results);
				}
    })
});

События виджета Autocomplete

СобытиеОписание
changeПроисходит, когда фокус ввода выходит за пределы текстового поля после изменения содержащегося в нем значения
closeПроисходит при закрытии раскрывающегося списка элементов автозаполнения
createПроисходит при инициализации экземпляра виджета Autocomplete для данного элемента
focusПроисходит, когда элемент автозаполнения получает фокус в раскрывающемся списке
openПроисходит при открытии раскрывающегося списка элементов автозаполнения
searchПроисходит перед генерацией раскрывающегося списка элементов автозаполнения или перед поиском в нем подходящих элементов
selectПроисходит при выборе элемента списка автозаполнения

Свойства виджета Autocomplete

СвойствоОписание
appendTo

Определяет элемент, к которому должен быть присоединен раскрывающийся список элементов автозаполнения.

По умолчанию таковым является элемент body

autoFocus

Если эта опция равна true, то фокус автоматически устанавливается на первом элементе раскрывающегося списка,

что позволяет выбирать его простым нажатием клавиши <Enter>. Значение по умолчанию — false

delay

Устанавливает длительность периода задержки (в миллисекундах) после нажатия клавиши,

по истечении которого будет срабатывать автозаполнение. Значение по умолчанию — 300

disabled

Установка значения true приводит к отключению средства автозаполнения.

На базовый элемент input эта опция никакого влияния не оказывает. Значение по умолчанию — false

minLength

Определяет минимальное число символов, ввод которых будет инициировать отображение

раскрывающегося списка элементов автозаполнения. Значение по умолчанию — 1

source

Устанавливает источник данных для добавления в раскрывающийся список элементов автозаполнения.

Значения по умолчанию для этого свойства не существует,

и поэтому указание необходимого значения при вызове метода autocomplete() является обязательным