Плагин для автодополнения полей адреса при вводе.
В качестве источника данных используется сервис [kladr-api.ru].
- $.fias — ( статичный объект ) предоставляет методы и свойства для работы с сервисом.
- $('input').fias — ( плагин jQuery ) плагин для автодополнения адреса.
- $('input').fiasZip — ( плагин jQuery ) плагин для полей с почтовым индексом.
- url — url сервиса, по умолчанию [http://kladr-api.ru/api.php].
- token — токен (для доступа к платным серверам)
- timeout — таймаут для запросов (по умолчанию 3000)
- type — перечисление используемых типов объектов. Список значений: region (область, регион), district (район), city (населённый пункт), street (улица), building (строение).
- typeCode — перечисление используемых типов населённых пунктов. Список значений: city (город), settlement (посёлок), village (деревня, село).
- validate = function (query) {} — выполняет проверку корректности объекта запроса.
- api = function (query, callback) {} — непосредственно выполняет запрос к сервису. В качестве параметров принимает объект запроса и функцию, которой будет передан ответ сервиса.
- check = function (query, callback) {} — проверяет существование объекта. В качестве параметров принимает объект запроса и функцию, которой будет передан объект (если он существует) либо false.
- setValues = function (values, selector) {} — устанавливает значения для полей, к которым подключён плагин $('input').fias. В качестве параметра values принимает массив объектов КЛАДР или объект вида {'тип объекта' => название или id объекта}. Второй параметр аналогичен параметру функции getInputs.
- setDefault = function (param1, param2) {} — устанавливает значения по умолчанию для параметров плагина $('input').fias. В качестве параметров принимает аналогично плагину либо объект со списком изменяемых параметров, либо пару "параметр - новое значение параметра".
- getDefault = function (param) {} — возвращает значение по умолчанию для параметра плагина $('input').kladr. В качестве параметра принимает название параметра плагина.
- getInputs = function (selector) {} — возвращает jQuery коллекцию полей ввода, к которым был подключён плагин $('input').fias. В качестве параметра принимает селектор, DOM элемент или же объект jQuery, в котором будет выполнен поиск соответствующих полей, по умолчанию body.
- buildAddress = function (objs) {} — строит строку адреса на основании массива объектов КЛАДР.
- getAddress = function (selector, build) {} — возвращает строку адреса на основании полей ввода, к которым был подключён плагин $('input').fias. Первый параметр аналогичен параметру функции getInputs. В качестве второго параметра принимает функцию, которой будет собираться строка адреса, по умолчанию buildAddress.
- token — токен для доступа к сервису. На бесплатном тарифе можно не указывать.
- type — тип подставляемых объектов, по умолчанию null.
- typeCode — тип подставляемых населённых пунктов, по умолчанию null. Может быть использован только если type == 'city'.
- parentType — тип родительского объекта, по умолчанию null.
- parentId — идентификатор родительского объекта, по умолчанию null.
- limit — количество отображаемых в выпадающем списке объектов, по умолчанию 10.
- oneString — включить ввод адреса одной строкой, по умолчанию false.
- withParents — получить объект вместе с родителями, по умолчанию false.
- parentInput — селектор, DOM элемент или же объект jQuery, в котором находится поле ввода родительского объекта, по умолчанию null.
- verify — проверять введённые данные, по умолчанию false.
- spinner — отображать ajax-крутилку, по умолчанию true.
- current — текущий, выбранный объект КЛАДР, только для чтения.
- controller - контроллер плагина, только для чтения.
- source = function (query) { return objects; } — функция для получения списка объектов отображаемых при автодополнении. В качестве параметра принимает объекта запроса. По умолчанию запрашивает данные у сервиса [kladr-api.ru] Может быть переопределена для получения объектов из другого источника.
- labelFormat = function (obj, query) { return label; } — функция для форматирования значений в списке. В качестве параметров принимает obj — объект КЛАДР, query – объект запроса.
- valueFormat = function (obj, query) { return label; } — функция для форматирования подставляемых в поле ввода значений. В качестве параметров принимает obj – объект КЛАДР, query – объект запроса.
- showSpinner = function ($spinner) {} — функция, выводящая ajax-крутилку. В качестве параметра принимает jQuery объект ajax-крутилки.
- hideSpinner = function ($spinner) {} — функция, скрывающая ajax-крутилку. В качестве параметра принимает jQuery объект ajax-крутилки.
Во все события в качестве контекста (this) передаётся текущее поле ввода.
В обработчиках событий ...Before (openBefore, closeBefore) объявленных как параметр плагина ( $('').fias({openBefore: function () {}}) ) можно отменить действие плагина, если в функции вернуть false ( $('').fias({openBefore: function () { return false; }}) ).
- openBefore = function () {} — возникает перед открытием списка объектов. Доступно как событие kladr_open_before поля ввода.
- open = function () {} — открыт список объектов. Доступно как событие kladr_open поля ввода.
- closeBefore = function () {} — возникает перед закрытием списка объектов. Доступно как событие kladr_close_before поля ввода.
- close = function () {} — закрыт список объектов. Доступно как событие kladr_close поля ввода.
- sendBefore = function (query) {} — возникает перед отправкой запроса к сервису. В параметре передаётся объект запроса. Доступно как событие kladr_send_before поля ввода.
- send = function () {} — отправлен запрос к сервису. Доступно как событие kladr_send поля ввода.
- receive = function () {} — получен ответ от сервиса. Доступно как событие kladr_receive поля ввода.
- selectBefore = function () {} — возникает перед изменением текущего объекта. Доступно как событие kladr_select_before поля ввода.
- select = function (obj) {} — выбран объект в списке. В параметре передаётся текущий, выбранный объект КЛАДР. Доступно как событие kladr_select поля ввода.
- checkBefore = function () {} — возникает перед проверкой введённых пользователем данных. Вызывается только если параметр verify = true. Доступно как событие kladr_check_before поля ввода.
- check = function (obj) {} — проверен введённый пользователем объект. Вызывается только если параметр verify = true. В параметре передаётся текущий объект КЛАДР. Доступно как событие kladr_check поля ввода.
- change = function (obj) {} — изменился текущий объект (current). В параметре передаётся текущий объект КЛАДР. Доступно как событие kladr_change поля ввода.
- setValueByName = function (name) { return controller; } — устанавливает значение поля ввода. В качестве параметра принимает имя объекта.
- setValueById = function (id) { return controller; } — устанавливает значение поля ввода. В качестве параметра принимает id объекта.
- setValueByObject = function (obj) { return controller; } — устанавливает значение поля ввода. В качестве параметра принимает объект КЛАДР.
- setValue = function (value) { return controller; } — устанавливает значение поля ввода. Если в качестве параметра передана строка, значение будет установлено методом setValueByName. Если передано число методом setValueById, если объект методом setValueByObject.
- clear = function () { return controller; } — очищает поле ввода.
Пример использования контроллера можно посмотреть в папке [examples] 3.
Плагин $('selector').kladrZip выполняет проверку введённого пользователем почтового индекса. В случае если введённый индекс соответствует реальному адресу, плагин подставляет объекты этого адреса в другие поля формы (см. пример формы для ввода адреса в папке [examples] 3).
Параметры:
$('selector').fiasZip(selector, onFoundCallback(obj));
- selector — DOM элемент или же объект jQuery, в котором будет выполнен поиск соответствующих полей адреса, по умолчанию body.
- onFoundCallback(obj) — коллбек вызывается, когда по индексу найден адрес. obj — объект с адресом
- jquery.fias.min.js — Минимифицированный код плагина
- jquery.fias.min.css — Минимифицированные стили
- examples — Примеры
- images — Изображения плагина
- src — Исходный код плагина
Автодополнение для ввода адреса одной строкой:
$('input').fias({
oneString: true
});
Автодополнение городами России:
$('input').fias({
type: $.fias.type.city
});
Изменение подписи при выборе района:
$('input').fias({
type: $.fias.type.district,
select: function(obj){
$('label').text(obj.type);
}
});
Проверка вводимого пользователем почтового индекса
$('input').fiasZip('form');
Более подробные примеры можно найти в папке [examples] 3.
Решение распространяется под лицензией «Общественное достояние» (Public Domain) и может быть свободно используемо любым лицом без выплат авторских вознаграждений.