我正在尝试附加虚拟键盘以绑定到Google地方自动填充输入。
如果我在输入中输入了一个字母,Google支持的下拉列表会根据地图的居中位置显示自动填充预测。如果我单击虚拟键盘键,输入会正确更新,但自动完成预测不会更新。
我尝试使用虚拟键盘change
回调来触发“keyup”(stackoverflow结果),“keypress”,“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);
});
}
}
理想情况下,我想触发已建立的自动填充预测下拉列表,以便在虚拟键盘上输入时进行更新。
答案 0 :(得分:11)
我找到了答案(demo)!
change : function(e, keyboard, el) {
google.maps.event.trigger( el, 'focus', {} );
}