我有一个应用程序,目前正在place_changed上正确激活 .
但是,我希望分支搜索在用户选择自动填充条目时以及在没有自动完成帮助的情况下自己输入文本时表现不同 .
我应该使用什么样的事件监听器来区分?我无法找到有关Google Map 自动填充的其他活动的任何文档 .
我现在拥有的:
var gmaps = new google.maps.places.Autocomplete($("#searchproperties").get(0),
{ types: ['geocode'], componentRestrictions: {country: 'us'} });
google.maps.event.addListener(gmaps, 'place_changed', function () {
//FIRE SEARCH
});
4 回答
Google Maps Javascript API v3中只有一个记录的事件google.maps.places.Autocomplete class,
place_changed
您可以向其添加标准HTML事件侦听器(不确定这是否会影响自动完成功能) .
这归结为检查是否收到
place.geometry
对象,如their official example中所示 . 就如此容易!如果你添加自己的输入处理程序(例如在用户输入自己的文本后捕获CR),自动完成和你的功能可以背靠背调用你的方法 . 我的解决方案是使用油门避免重复调用:
....
(更新的答案 - 2018年10月18日UTC)
place_changed
documentation说:所以(正如我在评论中提到的),我们可以检查属性
name
是否是通过Autocomplete.getPlace()检索到的PlaceResult对象中的唯一属性 . 请参阅并尝试以下代码段:(如果API密钥不起作用,请使用your own . )