2012-08-13 160 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

您必須添加 '推遲異步' 的腳本屬性,像這樣: