2012-08-13 203 views
35

试图让我的谷歌地图应用程序自动完成工作。谷歌地图v3 API - 自动完成(地址)

下面是当前的代码:

HTML输入地址时

<input type="text" class="clearText" id="address" name="address" value="" size=20 autocomplete="off"> 

的Javascript

var input = document.getElementById('address'); 
    var options = { 
     componentRestrictions: {country: 'au'} 
    }; 
    var autocomplete = new google.maps.places.Autocomplete(input, options); 

遗憾的是没有任何反应。

任何想法?

在此先感谢。

编辑:实际上,我收到以下错误:

遗漏的类型错误:为什么,该代码放置在我的地图初始化功能无法读取的不确定

不知道属性“自动完成”。

编辑2:固定。下面回答。

+4

您的修复版本正常工作!非常感谢你。 – eifersucht 2014-07-01 13:45:23

+0

您是否只加载此脚本?' – jshaf 2017-02-28 02:13:51

回答

4

固定。自动完成库实际上是一个必须显式加载的独立库。以下行解决了这个问题。

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?libraries=places‌​&sensor=false"></scr‌​ipt> 
14

您的修补程序也适用于我。我使用的是Geocomplete jQuery插件http://ubilabs.github.com/geocomplete/ 并在其主页上的说明说使用这个

<script src="http://maps.googleapis.com/maps/api/js?sensor=false&amp;libraries=places"></script> 

但它并没有为我工作,并得到同样的错误。

谷歌地图API这里 https://developers.google.com/maps/documentation/javascript/places?hl=en-EN#loading_the_library

+0

奇怪的是知道为什么发生这种情况很有意思。也许这个问题是由于amperstand被发送到浏览器的方式造成的。你使用PHP或HTML来生成脚本?什么浏览器? – 2015-01-08 22:13:01

+0

这是前一段时间,但我想我正在使用Rails erb模板来生成脚本。所以,HTML。 – 2015-01-24 01:20:29

+0

这不起作用,因为url应该是'sensor = false&libraries = places'not'sensor = false & libraries = places'这就是你所拥有的。 '&'是一个html&符号,而不是一个URL(因为在一个url中它只是'&'):)。 – Maverick 2016-07-07 04:46:48

0

感谢马特的回答,请参阅文档!不知何故,在使用libraries=places时,不要忽略<script>标签上的type="text/javascript"属性。

不起作用:

<script src="http://maps.googleapis.com/maps/api/js?libaries=places&sensor=false&callback=initMap"></script> 
<script src="http://maps.googleapis.com/maps/api/js?libaries=places&sensor=false"></script> 

作品:

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?libraries=places&sensor=false"></script> 

回调变种也可以(与initMap函数定义):

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?libraries=places&sensor=false&callback=initMap"></script> 

这似乎是与另一个一致SO answer并且与official documentation不一致(除非提供在URL中的key有所不同)。

1

您必须添加 '推迟异步' 的脚本属性,像这样: