0
Darhon
29.08.16
✎
16:49
|
Здравствуйте! разбираю пример автоподбора адреса с помощью API ГУГЛ. В принципе все работает, кроме странного поведения формы...После ввода символа первого, вываливается список адресов и ПОЛЕ очищается, то есть по 2,3 и более символам искать нереально....вот код:
&НаКлиенте
Процедура АдресАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
СтандартнаяОбработка=Ложь;
Если ЗначениеЗаполнено(Текст) Тогда
autocompletePlaceGoogle(Текст, ДанныеВыбора, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
//Теперь самое основное, опишем процедуру autocompletePlaceGoogle.
Процедура autocompletePlaceGoogle(пАдрес, списокАдресов, СтандартнаяОбработка) Экспорт
//&components=country:ua отбор по стране
ПреобразованныйАдрес = "/maps/api/place/autocomplete/json?input=" + пАдрес + "&types=address&language=ru&key=" + getAPIKeyGoogle();
Соединение = Новый HTTPСоединение("maps.googleapis.com",,,,,,Новый ЗащищенноеСоединениеOpenSSL);
ОтветСервера = Соединение.Получить(Новый HTTPЗапрос(ПреобразованныйАдрес)).ПолучитьТелоКакСтроку();
JSON = Новый ЧтениеJSON;
JSON.УстановитьСтроку(ОтветСервера);
jsonОтвет = ПрочитатьJSON(JSON);
Если НЕ jsonОтвет.Свойство("predictions") ИЛИ НЕ jsonОтвет.Свойство("status") Тогда
Возврат;
КонецЕсли;
predictions = jsonОтвет.predictions;
status = jsonОтвет.status;
Если status <> "OK" Тогда
Возврат;
КонецЕсли;
списокАдресов = Новый СписокЗначений;
Для Каждого найденныйАдрес ИЗ predictions Цикл
списокАдресов.Добавить(найденныйАдрес.description);
КонецЦикла;
КонецПроцедуры // Autococomplete()
Подскажите как сделать так, чтобы можно было набирать несколько символов подряд и он бы фильтровал значения в зависимости от набранной подстроки. Заранее спасибо.
|
|