在Google Maps AutoComplement之后启动功能

时间:2016-03-07 04:51:38

标签: javascript google-maps autocomplete

我尝试在用户选择 Google地址列表上的地址后运行功能。我尝试使用onBlur,但是在用户选择地址给我一个不完整的地址之前,操作会启动。

我读了这些主题:

How to fire place_changed event for Google places auto-complete on Enter key

Google Places API - place_changed listener not working

Events other than 'place_changed' for Google Maps Autocomplete

我尝试使用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?对于我认为的问题,这将是一个更好的解决方案。

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

好的,我看到了我所缺少的东西。

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); 
});

新秀错误。