Активировать автозаполнение мест 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', {} );
}