Git Product home page Git Product logo

kladrapi-jquery's Introduction

jQuery виджет "КЛАДР в облаке"

Виджет jQuery UI для автодополнения адреса при вводе. Виджет унаследован от $.ui.autocomplete, в качестве источника данных используется сервис [kladr-api.ru] 1

Опции виджета

  • token - токен для доступа к сервису [kladr-api.ru] 1, по умолчанию равен null
  • key – ключ для доступа к сервису [kladr-api.ru] 1, по умолчанию равен null
  • type – тип объектов для подстановки, по умолчанию $.ui.kladrObjectType.REGION
  • parentType – тип родительского объекта для ограничения области поиска, по умолчанию $.ui.kladrObjectType.REGION
  • parentId – код родительского объекта для ограничения области поиска, по умолчанию равен null - область поиска не ограничивается
  • withParents – получить объект вместе с родителями, по умолчанию false
  • limit – количество выводимых в выпадающем списке элементов
  • label = function( obj, query) { return label; } – функция для получения подписей, в качестве параметров принимает obj – объект КЛАДР, query – текущее значение поля ввода
  • value = function( obj, query) { return label; } – функция для получения подставляемых значений, в качестве параметров принимает obj – объект КЛАДР, query – текущее значение поля ввода
  • select = function( event, ui ){} – функция вызываемая при событии выбора пользователем значения для автодополнения, в поле ui.item.obj – передаётся выбранный пользователем объект КЛАДР

Перечисление $.ui.kladrObjectType

  • $.ui.kladrObjectType.REGION - область, регион
  • $.ui.kladrObjectType.DISTRICT - район
  • $.ui.kladrObjectType.CITY - населённый пункт
  • $.ui.kladrObjectType.STREET - улица
  • $.ui.kladrObjectType.BUILDING - дом, строение

Формат объекта КЛАДР

{
	id: "2900000100000", // Код объекта
	name: "Архангельск", // Название объекта
	zip: "163000",       // Почтовый индекс объекта
	type: "Город",       // Тип объекта (подпись) полностью
	typeShort: "г",      // Тип объекта (подпись) коротко
	parents: [           // Массив родительских объектов
		{
			id: "2900000000000",
			name: "Архангельская",
			zip: null,
			type: "Область",
			typeShort: "обл"
		}
	]
}

Служебная функция $.kladrCheck

Функция $.kladrCheck( options, callback ) проверяет существование объекта с параметрами options. Если объект существует, он возвращается в функцию callback. В качестве options принимает объект с параметрами запроса.

Список возможных параметров:

  • token - токен для доступа к сервису
  • key – ключ для доступа к сервису
  • type – тип объекта
  • value – название объекта
  • parentType – тип родительского объекта
  • parentId – код родительского объекта

Служебная функция $.kladrapi

Функция $.kladrapi( options, callback ) делает запрос к сервису [kladr-api.ru] 1, результат возвращает в функцию callback. В качестве options принимает объект с параметрами запроса.

Список возможных параметров:

  • token - токен для доступа к сервису
  • key – ключ для доступа к сервису
  • regionId – код региона
  • districtId – код района
  • cityId – код города
  • streetId – код улицы
  • buildingId – код строения
  • query – строка для поиска по названию
  • contentType – тип объекта для поиска
  • withParent – вернуть объекты вместе с родителями, если 1 то в каждый объект будет добавлено поле parents содержащее список объектов-родителей объекта
  • limit – ограничение количества возвращаемых объектов, по умолчанию равно 2000

Примеры

Простое автодополнение города

$( "input" ).kladr({
        token: '51dfe5d42fb2b43e3300006e',
        key: '86a2c2a06f1b2451a87d05512cc2c3edfdf41969',
        type: $.ui.kladrObjectType.CITY
});

Автодополнение городами из Архангельской области (код КЛАДР 2900000000000)

$( "input" ).kladr({
        token: '51dfe5d42fb2b43e3300006e',
        key: '86a2c2a06f1b2451a87d05512cc2c3edfdf41969',
        type: $.ui.kladrObjectType.CITY,
        parentType: $.ui.kladrObjectType.REGION,
        parentId: "2900000000000"
});

Автодополнение городами России, со сменой подписи при выборе города

$( "input" ).kladr({
        token: '51dfe5d42fb2b43e3300006e',
        key: '86a2c2a06f1b2451a87d05512cc2c3edfdf41969',
        type: $.ui.kladrObjectType.CITY,
        select: function( event, ui ) {
                $( "label" ).text( ui.item.obj.type );
        }
});

Более подробные примеры можно посмотреть в папке examples

Лицензия

Решение распространяется под лицензией «Общественное достояние» (Public Domain) и может быть свободно используемо любым лицом без выплат авторских вознаграждений.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.