Ваши комментарии
10 лет назад
Примерно так:
function join(arr) {
var separator = arguments.length > 1 ? arguments[1] : ', ';
return arr.filter(function(n) {
return n;
}).join(separator);
}
function enableSuggestions(ui) {
ui.address.suggestions({
serviceUrl: "https://dadata.ru/api/v2",
token: "***",
type: "ADDRESS",
onSelect: showSelected
});
function showSelected(suggestion) {
var address = suggestion.data;
ui.index.val(address.postal_code);
ui.region.val(join([
join([address.region_type, address.region ], ' '),
join([address.area_type, address.area ], ' ')
]));
ui.city.val(join([
join([address.city_type, address.city ], ' '),
join([address.settlement_type, address.settlement ], ' ')
]));
ui.street.val(join([address.street_type, address.street ], ' '));
ui.house.val(join([
join([address.house_type, address.house ], ' '),
join([address.block_type, address.block ], ' ')
]));
ui.flat.val(join([address.flat_type, address.flat ], ' '));
}
}
enableSuggestions({
address: $("#otkuda"),
index: $('#index1'),
region: $('#region'),
city: $('#city'),
street: $('#street'),
house: $('#house'),
flat: $('#flat')
});
Примерно так:
var parts = [$region, $city, $street];
parts.forEach(function($part) {
$part.change(function() {
onPartChange(formatParts(parts));
});
});
function join(arr) {
var separator = " ";
return arr.filter(function(n){return n;}).join(separator);
}
function formatParts(parts) {
var partialValues = parts.map(
function($el) { return $el.val(); }
);
return join(partialValues);
}
function onPartChange(newVal) {
suggestOne(newVal)
.done(function(response) {
var suggestion = response.suggestions[0];
$address.val(suggestion.value);
});
}
function suggestOne(query) {
var serviceUrl = "https://dadata.ru/api/v2/suggest/address",
token = "***",
request = {
"query": query
},
params = {
type: "POST",
contentType: "application/json",
headers: {
"Authorization": "Token " + token
},
data: JSON.stringify(request)
};
return $.ajax(serviceUrl, params);
}
Добрый день!
Зарегистрируйтесь, зайдите в Личный кабинет, и нажмите "Сгенерировать" около API-ключа
Если я правильно понял – вы хотите раскладывать адрес по полям. Посмотрите пример, как можно реализовать эту функциональность.
Добрый день!
Дайте, пожалуйста, ссылку на вашу реализацию.
Посмотрим, в чем дело.
Уточните пожалуйста, какой именно механизм интересует?
Теперь адрес уже другой: 115088 ГОРОД МОСКВА УЛИЦА УГРЕШСКАЯ ДОМ 2 КОРП 84 КВ 1 К 01-05
Сервис поддержки клиентов работает на платформе UserEcho