Освоение автозаполнения Google: создание двух PAC-контейнеров на одной странице

В этой статье блога мы рассмотрим различные методы создания двух контейнеров PAC (Place Autocomplete) на одной странице с помощью Google Autocomplete. Мы углубимся в некоторые примеры кода и подробно объясним каждый метод. Итак, давайте начнем и улучшим возможности автозаполнения!

Метод 1. Использование двух отдельных экземпляров автозаполнения
Самый простой способ создать два PAC-контейнера — инициализировать два отдельных экземпляра службы автозаполнения, предоставляемой API Google Адресов.

HTML:

<div id="pac-container-1">
  <input id="autocomplete-1" type="text" placeholder="Search Location 1">
</div>
<div id="pac-container-2">
  <input id="autocomplete-2" type="text" placeholder="Search Location 2">
</div>

JavaScript:

var autocomplete1 = new google.maps.places.Autocomplete(
  document.getElementById("autocomplete-1")
);
var autocomplete2 = new google.maps.places.Autocomplete(
  document.getElementById("autocomplete-2")
);

Метод 2: использование одного экземпляра автозаполнения с настраиваемыми полями ввода.
В этом методе мы можем использовать один экземпляр автозаполнения и настроить поля ввода, чтобы различать два контейнера PAC.

HTML:

<div class="pac-container">
  <input class="autocomplete" id="autocomplete-1" type="text" placeholder="Search Location 1">
</div>
<div class="pac-container">
  <input class="autocomplete" id="autocomplete-2" type="text" placeholder="Search Location 2">
</div>

JavaScript:

var input1 = document.getElementById("autocomplete-1");
var input2 = document.getElementById("autocomplete-2");
var autocomplete = new google.maps.places.Autocomplete(input1);
input2.addEventListener("focus", function () {
  autocomplete.setFields({ input: input2 });
  autocomplete.addListener("place_changed", function () {
    // Handle place selection for Location 2
  });
});

Метод 3. Использование пользовательских прослушивателей событий
Этот метод предполагает создание пользовательских прослушивателей событий для управления поведением автозаполнения для каждого контейнера PAC.

HTML:

<div class="pac-container">
  <input class="autocomplete" id="autocomplete-1" type="text" placeholder="Search Location 1">
</div>
<div class="pac-container">
  <input class="autocomplete" id="autocomplete-2" type="text" placeholder="Search Location 2">
</div>

JavaScript:

var input1 = document.getElementById("autocomplete-1");
var input2 = document.getElementById("autocomplete-2");
input1.addEventListener("focus", function () {
  // Initialize Autocomplete for Location 1
});
input2.addEventListener("focus", function () {
  // Initialize Autocomplete for Location 2
});

Следуя любому из описанных выше методов, вы можете легко создать два контейнера PAC на одной странице с помощью автозаполнения Google. Независимо от того, выберете ли вы отдельные экземпляры, настраиваемые поля ввода или настраиваемые прослушиватели событий, теперь у вас есть знания, которые помогут улучшить качество автозаполнения для ваших пользователей.

Не забудьте включить необходимые сценарии API Google Адресов и убедиться, что у вас есть действительный ключ API для успешной реализации. Приятного программирования и изучения захватывающих возможностей Google Autocomplete!