0
Fixed

Форматирование адреса

Denis Peplin 5 years ago updated by Антон 5 years ago 4
Пытаюсь воспользоваться примером: http://dadata.userecho.com/topic/379031-formatirovanie-adresa/#
Форматирование подсказок работает. Дальше подсказкой надо как-то воспользоваться.
Вариант1: выбрать из выпадающего списка. Тут форматирование пропадает, адрес попадает в окно ввода в неотформатированном виде.
Вариант2: покинуть окно ввода, нажав Enter или щелкнув мышкой вне окна. Этот вариант работает по-разному в зависимости от того, сколько осталось подсказок:
- несколько подсказок: поле ввода не меняется.
- одна подсказка: в поле ввода попадает правильно отформатированные адрес.

К сожалению, последний случай (и единственный, когда все работает правильно) срабатывает редко, т.к. кроме домов, в БД адресов встречаются еще и какие-то "владения", которых в реальной жизни не существует (пример на картинке).



Т.е. как правило, форматирование не работает.

Answer

Answer
Fixed
Исправили пример.
Started
Да, это баг. Спасибо, исправим в декабре.
Пока что нашел обходной путь: вынес форматирование адреса в отдельную функцию, использую ее и при форматировании подсказки, и при заполнении поля после выбора подсказки. Работает.

formatResult: formatResult,
onSelect: showSelected

function addressValue(suggestion) {
var address = suggestion.data;
return join([
join([address.settlement_type, address.settlement], " "),
join([address.city_type, address.city], " "),
join([address.street_type, address.street], " "),
join([address.house_type, address.house,
address.block_type, address.block], " ")
]);
};

function formatResult(value, currentValue, suggestion) {
return suggestion.value = addressValue(suggestion);
}


function showSelected(suggestion) {
return $('#address').val(addressValue(suggestion));
}

Спасибо, что поделились!
Answer
Fixed
Исправили пример.