2014-02-26 5 views
9

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

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

Я пытался использовать виртуальную клавиатуру change обратного вызова, чтобы вызвать "KeyUp" (результаты StackOverflow), "нажатие", "KeyDown", "изменение", и я даже попробовал эту (demo):

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

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

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

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); 
    }); 
    } 
} 

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

ответ

8

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

change : function(e, keyboard, el) { 
    google.maps.event.trigger(el, 'focus', {}); 
} 
+0

Чувак, вы закончили часами блуждания среди API Google. Большое спасибо! –

+0

Вы, ребята, выяснили, как вызвать изменение, когда я нажимаю на результаты автозаполнения? Я могу получить «фокус» для запуска и отображения результатов, но теперь, когда я нажимаю на результаты, они не исчезают. – nf071590

Смежные вопросы