我尝试在用户选择 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);
}
我缺少什么?
对于另一种解决方案,无论如何只有在用户选择自动完成列表中的某些内容后才会激活onBlur
或onChange
?对于我认为的问题,这将是一个更好的解决方案。
感谢任何帮助。
答案 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);
});
新秀错误。