2015-01-19 2 views
-2

У меня было это некоторое время назад, и я вернулся к нему сегодня, и я не могу заставить его работать, и я уверен, что ничего не изменил.JQuery Google Autocomplete не работает - нет ошибки

Live Preview: http://cssdeck.com/labs/wlt4zing

Вот HTML:

<div class='form-row'> 
<div class='col-6 form-group'> 
<label class='control-label'>Location</label> 
<input class='form-control' id='autocomplete' 
placeholder='Location' size='4' type='text'> 
<input class="input hidden" disabled="true" id="route"> 
<input class="input hidden" disabled="true" id= 
"locality"> <input class="input hidden" disabled="true" 
id="administrative_area_level_1"> <input class= 
"input hidden" disabled="true" id= 
"administrative_area_level_2"> <input class= 
"input hidden" disabled="true" id="postal_code"> 
<input class="input hidden" disabled="true" id= 
"country"> 
</div> 
    <script class="cssdeck" src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script> 
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&libraries=places"></script> 

JS

var placeSearch, autocomplete; 
var componentForm = { 
    route: 'long_name', 
    locality: 'long_name', 
    administrative_area_level_1: 'long_name', 
    country: 'long_name', 
    postal_code: 'short_name' 
}; 
function clear(){ 
    console.log("clr"); 
    $("input.hidden").val(""); 
} 
function initialize() { 
    autocomplete = new google.maps.places.Autocomplete(
    (document.getElementById('autocomplete')), { 
     types: ['geocode'] 
    }); 
    google.maps.event.addListener(autocomplete, 'place_changed', function() { 
     fillInAddress(); 
    }); 
} 

function fillInAddress() { 
    var place = autocomplete.getPlace(); 

    for (var component in componentForm) { 
     document.getElementById(component).value = ''; 
     document.getElementById(component).disabled = false; 
    } 

    for (var i = 0; i < place.address_components.length; i++) { 
     var addressType = place.address_components[i].types[0]; 
     if (componentForm[addressType]) { 
      var val = place.address_components[i][componentForm[addressType]]; 
      document.getElementById(addressType).value = val; 
     } 
    } 
} 

$(document).ready(function(){ 
    $("#autocomplete").on('keyup',function() { 
     $("input.hidden").val(''); 
    }); 
}); 

Я не получаю никаких ошибок, так что я не уверен, что пошло не так. Он должен получать предложения автозаполнения и заполнять поля, но ничего не делает. Может ли кто-нибудь помочь мне, пожалуйста, поймите, где я поступил неправильно?

ответ

1

Вы никогда не звоните initialize(). Вы должны вызвать его при загрузке страницы.

Смежные вопросы