Пример
$(document).ready(function() {
.......
$("#tabs").tabs();
//Код первой вкладки (стандартное использование)
$("#country").autocomplete({source:country});
//Код второй вкладки (удаленная база данных)
$("#city").autocomplete({source: 'jsonsuggest.php', minLength:4});
//Код третьей вкладки (управление извлеченными данными)
var object=[
{label:"Изображение 1", url:"mountimg.jpg",
description:"Закат в горах, Ергаки.", coord:{lt:"52.854413",ln:"93.367310"}},
{label:"Изображение 2", url:"mountimg1.jpg",
description:"Вид на безымянную гору с озера 'Круглое', Кузнецкий Алатау.",
coord:{lt:"53.815653",ln:"89.283829"}},
{label:"Изображение 3", url:"mountimg2.jpg",
description:"Озеро 'Харлыкголь', Кузнецкий Алатау.", coord:{lt:"53.800245",ln:"89.268723"}},
{label:"Изображение 4", url:"mountimg3.jpg",
description:"Скала 'Два брата' (Парабола), Ергаки.", coord:{lt:"52.839225",ln:"93.397093"}}
];
$("#image").autocomplete({source:object,select:function(event,ui){
$("#wrap").css("display","block");
$("#img").attr("src",ui.item.url);
$("#desc").html(ui.item.description);
$("#latitude").html(ui.item.coord.lt);
$("#longitude").html(ui.item.coord.ln);
}});
});
С помощью метода autocomplete Вы можете превратить выбранный элемент в виджет autocomplete.
Данный виджет помогает производить быстрый поиск-выборку из предварительно составленного списка данных.
Когда пользователь вводит что-нибудь в поле, виджет начинает искать совпадения между введенным значением и значениями списка, и если они были найдены отображает их.
Виджет может производить поиск как по локальным, так и удаленным спискам. Локальные списки удобны для хранения небольших наборов данных (например список улиц города), а удаленные списки подходят для хранения больших наборов данных (например база данных всех городов мира).
Если Вы хотите произвести поиск по локальным спискам данных, Вы должны указать в качестве источника массив данных. Массив может содержать в качестве значений строки или объекты (значение свойства label объекта будет использовано в качестве подсказки, а value в качестве подстановочного значения если объект имеет только одно из этих свойств, то его значение будет использовано в обоих случаях).
Если Вы хотите произвести поиск по удаленным спискам данных, Вы должны указать в качестве источника строку содержащую адрес по которому располагаются данные. Значение введенное пользователем будет передано на указанный адрес в параметре term. К примеру если данные располагаются по адресу data.php и пользователь ввел "test", итоговый URL будет выглядеть так: data.php?term=test.
В качестве источника также может использоваться функция обратного вызова. С помощью функции обратного вызова Вы можете более гибко привязывать источник данных к виджету. Функция принимает два параметра:
С помощью опций и событий перечисленных в таблицах далее на данной странице Вы можете настроить поведение данного виджета под конкретные нужды.
$(селектор).autocomplete(опции,события)
селектор выбирает элемент, который будет превращен в виджет.
опции настраивают дополнительные аспекты поведения виджета.
события события связанные с данным виджетом.
| Опции | Описание |
|---|---|
| delay | Устанавливает задержку (в миллисекундах) между нажатием клавиши и началом поиска. Значение по умолчанию: 300. Пример использования: .autocomplete({delay:700}) |
| minLength | Устанавливает минимальное количество символов, которое должен ввести пользователь перед тем как начнется поиск. Значение по умолчанию: 1. Пример использования: .autocomplete({minLength:3}) |
| position | Устанавливает местоположение виджета autocomplete относительно связанного с ним полем ввода.
Значение по умолчанию: {my:"left top",at:"left bottom",collision:"none"}. Пример использования: .autocomplete({position:{my:"right top",at:"right bottom",collision:"none"}}) |
| source | Указывает список данных, в котором виджет будет искать совпадения. Список данных обязательно должен быть определен.
Значение по умолчанию: none. Пример использования: .autocomplete({source:["Москва","Санкт-Петербург","Новосибирск","Екатеринбург"]}) |
Все обработчики событий принимают два аргумента - стандартный объект event браузера и специальный объект ui.
Синтаксис
$(селектор).autocomplete({событие:function(event,ui){Код обработчика}})
//или
$(селектор).bind(".autocompleteсобытие",function(event,ui){Код обработчика})
Обратите внимание: например для того, чтобы привязать к виджету с id='test' обработчик события create, который выводит сообщение "привет" необходимо будет написать следующий код: $("#test").autocomplete({create:function(event,ui){alert("Привет")}}).
| События | Описание |
|---|---|
| create | Определяет функцию, код которой будет выполнен, когда виджет будет создан. |
| search | Определяет функцию, код которой будет выполнен перед тем, как начнется поиск совпадений. Если функция вернет false поиск будет отменен. |
| open | Определяет функцию, код которой будет выполнен во время отображения списка предположений. |
| focus | Определяет функцию, код которой будет выполнен при наведении курсора мыши на одно из предположений. Параметр ui.item переданный этой функции будет ссылаться на объект данных связанный с предположением, на которое был наведен курсор мыши. |
| select | Определяет функцию, код которой будет выполнен при выборе одного из предположений. Объект ui.item переданный этой функции будет ссылаться на элемент данных связанный с выбранным предположением. |
| close | Определяет функцию, код которой будет выполнен при закрытии списка предположений. |