Пример
$(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 | Определяет функцию, код которой будет выполнен при закрытии списка предположений. |