Можно сделать чтобы выводились в подсказках только города и регионы
<p class="form__title">Город/Регион</p>
<input list="suggestionsList" style="color: black;" placeholder="Название" onkeyup="getSuggestions(this.value)" />
<datalist id="suggestionsList">
</datalist>
function getSuggestions(query) {
$.ajax({
url: 'https://suggest-maps.yandex.ru/suggest-geo',
dataType: 'jsonp',
data: {
part: query,
lang: 'ru_RU',
v: '5',
search_type: 'all',
callback: 'suggestCallback',
html: 'false',
apikey: 'ключ' // Замените на свой API-ключ
},
success: function(response) {
if (response && response[1]) {
var suggestions = response[1];
var suggestionsList = document.getElementById('suggestionsList');
suggestionsList.innerHTML = '';
for (var i = 0; i < suggestions.length; i++) {
var suggestion = suggestions[i];
if (suggestion[0] === 'geo') { // Фильтруем подсказки по типу 'geo'
var suggestionItem = document.createElement('option');
suggestionItem.value = suggestion[1]; // Устанавливаем значение option
suggestionItem.textContent = suggestion[1];
suggestionsList.appendChild(suggestionItem);
}
}
} else {
console.error('Неверный формат ответа:', response);
}
},
error: function(xhr, status, error) {
console.error('Ошибка запроса:', error);
}
});
}
// Получаем ссылки на список и поле ввода
var suggestionsList = document.getElementById('suggestionsList');
var inputField = document.getElementById('inputField');
// Добавляем обработчик события клика на каждый элемент списка
suggestionsList.addEventListener('click', function(event) {
// Проверяем, что кликнули на элемент списка
if (event.target.tagName === 'LI') {
// Получаем текст выбранного элемента
var selectedText = event.target.textContent;
// Устанавливаем текст в значение поля ввода
inputField.value = selectedText;
}
});