2014-02-26 187 views
9

我想附加一個虛擬鍵盤綁定到谷歌的地方自動完成輸入。觸發谷歌地點自動完成

如果我物理輸入在輸入字母,谷歌供電下拉顯示基於其中地圖的中心自動完成預測。如果我點擊虛擬鍵盤鍵,輸入會得到正確更新,但自動完成預測不會更新。

我曾嘗試使用虛擬鍵盤change回調觸發「KEYUP」(計算器的結果),「按鍵」,「的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中流浪了好幾個小時。 非常感謝! –

+0

您是否在點擊自動填充結果時找出如何觸發更改?我可以得到'重點'來觸發並顯示結果,但現在當我點擊結果時,它們不會消失。 – nf071590

相關問題