jQuery UI Autocomplete
Создание виджета Autocomplete
Чтобы создать элемент управления автозаполнением, следует вызвать метод autocomplete() для соответствующего элемента input.
...
<input id="autocomp"/>
...<script type="text/javascript">
$(function() {
var array = ["Астра", "Нарцисс", "Роза", "Пион", "Примула", "Подснежник", "Мак", "Первоцвет", "Петуния", "Фиалка"];
$('#autocomp').autocomplete({ source:
})
array
});
</script>
Использование массива объектов в качестве источника данных
В качестве источника элементов списка автозаполнения вместо строк могут использоваться массивы объектов.
$(function() { var
= [{label: "Астры (бордовые)", value: "Астры"}, {label: "Нарциссы(белые)", value: "Нарциссы"}, {label: "Розы (розовые)", value: "Розы"}, {label: "Пионы (розовые)", value: "Пионы"}] $('#autocomp').autocomplete({ source:
array
}) });
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() является обязательным |