поле ввода не заполняется из выпадающего списка

#javascript #dom #autocomplete #algolia

#javascript #dom #автозаполнение #algolia

Вопрос:

У меня есть скрипт, прикрепленный к полю ввода. Это служба автозаполнения адресов, размещенная в Algolia). У меня работает скрипт: предложения начинают отображаться при вводе, и как только предложение выбрано, оно отображается так, как будто оно заполнило поле. однако при отправке формы в ней отображаются только буквы, которые были введены вручную, а не выбранное предложение. В любом случае, чтобы исправить это?

 (function() {
  var placesAutocomplete = places({
    appId: 'APPID',
    apiKey: 'APIKEY',
    container: document.querySelector('input[name="address-line1"]'),
    templates: {
      value: function(suggestion) {
        return suggestion.name;
      }
    }
  }).configure({
    type: 'address'
  });
  placesAutocomplete.on('change', function resultSelected(e) {
    document.querySelector('#ec-city-list').value = e.suggestion.city || '';
  });
})();
  
 <script src="https://cdn.jsdelivr.net/npm/places.js@1.19.0"></script>
  

Комментарии:

1. Извините, @mplungjanbut к сожалению, я новичок, и я не знаю, как сделать это на минимально воспроизводимом примере. Однако для устранения вашей ошибки вам необходимо изменить контейнер на поле ввода, в которое вы хотите добавить скрипт. ссылка здесь — это документ, в котором объясняется сценарий.

2. Я вижу, что нужен ключ, так что неважно

3. Отправляете ли вы документ. querySelector(‘#ec-city-list’).значение?

4. Таким образом, скрипт предлагает предложения по адресам, которые вводятся при вводе [name=»address-line1″], как только предложение выбрано, оно заполняет это поле ввода названием улицы и (#’ec-city-list’) атрибутом города предложения. Это Google Maps, как сервис.