Активировать автозаполнение мест Google

Я пытаюсь подключить виртуальную клавиатуру для привязки к автозаполнению ввода Google.

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

Я пытался использовать виртуальную клавиатуру change обратный вызов, чтобы вызвать "keyup" (результаты stackru), "нажатие клавиши", "keydown", "change", и я даже попробовал это ( демо):

change : function(e, keyboard, el) {
    google.maps.event.trigger(autocomplete, 'place_changed');
}

что приводит к ошибке JavaScript в основном показывает, что autocomplete.getPlace(); не возвращает результат.

Итак, теперь я попробовал приведенный ниже код (в этой демонстрации), который использует обратный вызов изменения для запуска прогноза автозаполнения, но, как вы можете видеть в этой демонстрации, результаты отличаются.

change : function(e, keyboard, el) {
  var $el = $(el),
      service = new google.maps.places.AutocompleteService();
  if ($el.val() !== "") {
    service.getQueryPredictions({ input: $(el).val() }, function(predictions, status) {
      if (status != google.maps.places.PlacesServiceStatus.OK) {
        alert(status);
        return;
      }
      var list = '', $results = $('#results');
      for (var i = 0, prediction; prediction = predictions[i]; i++) {
        list += '<li>' + prediction.description + '</li>';
      }
      $results.html(list);
    });
  }
}

В идеале я хочу вызвать уже установленное раскрывающееся меню автозаполнения для обновления во время набора текста на виртуальной клавиатуре.

1 ответ

Решение

Я нашел свой ответ ( демо)!

change : function(e, keyboard, el) {
    google.maps.event.trigger( el, 'focus', {} );
}
Другие вопросы по тегам