2016-05-03 30 views
0

Ich habe das Autocomplete-Textfeld eingerichtet und es werden die Optionen angezeigt. Das Ereignis 'place_changed' gibt jedoch [object Object] als Ausgabe zurück. Unten ist mein Code.Google Places Autocomplete 'place_changed' Ereignis funktioniert nicht

<script src="https://maps.googleapis.com/maps/api/js?libraries=places&language=en"></script> 

<script> 
    var pos; 
    var mylocation; 
    function initAutocomplete(){ 
     var input = document.getElementById('autocomplete'); 
     var autocomplete = new google.maps.places.Autocomplete(input); 
     google.maps.event.addListener(autocomplete, 'place_changed', function(){ 
      mylocation = autocomplete.getPlace(); 
      alert(mylocation); 
     }) 
    } 
</script> 

Unten finden Sie die CSS die ich verwendet habe:

#pac-input { 
    background-color: #fff; 
    font-size: 15px; 
    font-weight: 300; 
    margin-left: 12px; 
    padding: 0 11px 0 13px; 
    text-overflow: ellipsis; 
    width: 350px; 
} 

#pac-input:focus { 
    border-color: #4d90fe; 
} 

.pac-container { 
    z-index: 2000000 !important; 
    width: 350px; 
} 

.pac-item { 
    height: 35px; 
    font-size: 12px; 
    color: #101010; 
} 

#autocomplete { 
    height: 35px; 
    width: 100%; 
    padding-left: 10px; 
} 

Jede Hilfe dieses Problem beheben würde geschätzt.

Antwort

2

In Ihrer Ereignisdeklaration den Parameter der automatischen Vervollständigung entfernen:

google.maps.event.addListener('place_changed', function() 

statt:

google.maps.event.addListener(autocomplete, 'place_changed', function() 

Und versuchen Sie diese Warnung:

alert(mylocation.name); 

mylocation ein JSON-Objekt ist. Versuchen Sie console.log(mylocation), um den JSON-Schlüssel und den Wert wiederherzustellen. Wenn Sie alarmieren mylocation ist es normal. Diese Warnung gibt [object Object] zurück, da es sich um ein JSON-Objekt handelt.

+0

Vielen Dank! Es hat perfekt funktioniert. – Fleur

+0

Gern geschehen :). – John

Verwandte Themen