在谷歌地图自动补充之后启动一个功能

Fire a fuction after Google Maps AutoComplement

本文关键字:功能 一个 启动 之后 谷歌地图      更新时间:2023-09-26

我试图在用户在Google地址列表中选择地址后运行函数。我尝试使用onBlur但是在用户可以选择地址之前该操作将触发,从而给我一个不完整的地址。

我阅读了这些主题:

如何触发 Google 在 Enter 键上自动完成place_changed事件

Google Places API - place_changed侦听器不起作用

Google 地图自动填充功能中"place_changed"以外的事件

我尝试了place_changed但仍然无法运行我的函数。

.HTML

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">    
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=EDITED(MY KEY)&libraries=places"></script><script src="mapa.js" language="Javascript" type="text/javascript"></script>
<script type="text/javascript" src="jquery-ui.custom.min.js"></script>
<script type="text/javascript" src="jquery.min.js"></script>
</head>
<body>

          <input type="text" name="street" id="0" onFocus="autoComplete(this);">

</body>
</html>

JavaScript

function autoComplete(adress)
{
    var input = document.getElementById(adress.id);
    var options = { componentRestrictions: {
      country: 'fr'
    }};
    new google.maps.places.Autocomplete(input, options);
    google.maps.event.addListener(gmaps, 'place_changed', function () {
       getPlace(adress); 
    });
}
function getPlace(adress)
{
   alert(adress.value);   
}

我错过了什么?

对于替代解决方案,是否有任何方法仅在用户在自动完成列表中选择某些内容后才触发onBluronChange?我认为这将是解决我问题的更好方法。

任何帮助,不胜感激。

好的,

我看到了我错过的东西。

new google.maps.places.Autocomplete(input, options);我必须将其保存在像gmaps = new google.maps.places.Autocomplete(input, options);这样的变量上,然后在侦听器上调用它:

google.maps.event.addListener(gmaps, 'place_changed', function () {
   getPlace(adress); 
});

菜鸟错误。