【发布时间】:2014-03-28 14:43:15
【问题描述】:
我正在尝试附加一个虚拟键盘以绑定到 Google 地方自动完成输入。
如果我在输入中实际输入了一个字母,则由 Google 提供支持的下拉菜单会根据地图的中心位置显示自动完成预测。如果我单击虚拟键盘键,输入会正确更新,但自动完成预测不会更新。
我曾尝试使用虚拟键盘change 回调来触发“keyup”(stackoverflow 结果)、“keypress”、“keydown”、“change”,我什至尝试过这个(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);
});
}
}
理想情况下,我想在虚拟键盘上打字时触发已经建立的自动完成预测下拉菜单进行更新。
【问题讨论】:
标签: javascript google-places-api