Да, можно использовать Yandex API для автозаполнения названий городов. Для этого можно воспользоваться API подсказок (Places API) от Yandex.
Чтобы изменить функцию JavaScript и отображать только названия городов, без подстановки полного адреса со страной и регионом, можно использовать следующий подход:
1. Подключите библиотеку Yandex Maps API в вашем HTML-коде:
```html
<script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU&apikey=ваш_ключ"></script>
```
2. В функции JavaScript, которая обрабатывает автозаполнение, используйте метод `geocode` из Yandex Maps API, чтобы получить информацию о месте:
```javascript
function autocomplete(inputId) {
var input = document.getElementById(inputId);
ymaps.geocode(input.value, { results: 10 }).then(function (res) {
// Очистка списка с автозаполнением
// (при необходимости)
// ...
// Обработка результатов геокодирования
res.geoObjects.each(function (obj) {
// Получение названия города
var cityData = obj.getLocalities();
// Отображение названия города в списке с автозаполнением
if (cityData.length > 0) {
var cityName = cityData[0];
// ...
// Добавление названия города в список с автозаполнением
// ...
}
});
});
}
```
3. При необходимости, вам нужно добавить список с автозаполнением (например, `<ul>` или `<datalist>` элемент) и соответствующую обработку кликов или выбора элемента списка.
```
<ul id="autocomplete-list"></ul>
```
```javascript
function addCityToList(cityName) {
var list = document.getElementById('autocomplete-list');
var item = document.createElement('li');
item.textContent = cityName;
list.appendChild(item);
}
function onListItemClick(event) {
var cityName = event.target.textContent;
document.getElementById('input-id').value = cityName;
}
```
Надеюсь, это поможет вам обновить вашу функцию автозаполнения, чтобы отображать только названия городов.