2013-05-13 41 views
0

我一直在玩代碼,我有東西幾乎可以工作,但座標實際上並沒有移動到我的輸入框中。我重新檢查了幾次代碼,並且控制檯不顯示錯誤,所以我有點卡住了。谷歌地理編碼 - 座標沒有被返回到輸入框

這裏是我的代碼運行:fiddle

這裏是我的實際代碼:

<script type="text/javascript" src="//maps.google.com/maps/api/js?sensor=true&libraries=places"></script> 
<script type="text/javascript" src="https://raw.github.com/carhartl/jquery-cookie/master/jquery.cookie.js"></script> 

<script type="text/javascript"> 

    // SET COOKIE FOR TESTING 
    $.cookie("country", "UK"); 

    // GEOCODE RESULT 
function geocode(){ 

    var GeoCoded = { done: false }; 
    var input = document.getElementById('loc'); 
    var options = { types: ['geocode']}; 
    var country_code = $.cookie('country'); 
    alert(country_code); 
    if (country_code) { options.componentRestrictions= { 'country': country_code }; } 
    var autocomplete = new google.maps.places.Autocomplete(input, options); 
    $('#searchform').on('submit',function(e){ 
     if(GeoCoded.done) 
      return true; 
     e.preventDefault(); 
     var geocoder = new google.maps.Geocoder(); 
     var address = document.getElementById('loc').value; 
     $('#searchform input[type="submit"]').attr('disabled',true); 
     geocoder.geocode({ 
      'address': address 
     }, 
     function (results, status) { 
      if (status == google.maps.GeocoderStatus.OK) { 
       $('#lat').val(results[0].geometry.location.lat()); 
       $('#lng').val(results[0].geometry.location.lng()); 
       GeoCoded.done = true; 
       alert("Geocoded!"); 
       $('#searchform').submit(); 
      } else { 
       $('#searchform input[type="submit"]').attr('disabled',false); 
       alert("We couldn't find this location") 
      } 

     }); 

    }); 

};  
</script> 

<body onload="geocode()"> 
<form name="searchform"> 
     <input class="kw" id="keyword" placeholder="Keyword"></input> 
     <input id="loc" placeholder="Location" type="text"></input> 
     <input type="submit" value="Search" id="search"> 
     <input class="hidden" id="lat" disabled="true" placeholder="lat"></input> 
     <input class="hidden" id="lng" disabled="true" placeholder="lng"></input> 
</form> 

如果任何人都可以在正確的方向指向我,我將非常感激

+0

您是否需要在輸入字段中指定type = text?也可能是disabled = true可能會阻止它們的值被更新。 – duncan 2013-05-13 09:58:00

回答

2
  1. 的選擇器#searchform與您的表單不匹配,表單沒有設置爲id-attribute。

    二者必選其一的選擇form[name="searchform"]或形式的ID設置爲searchform

  2. githhub不是CDN的jquery.cookie.js供應與內容類型"text/plain",因此(在某些瀏覽器)都將被忽略,有什麼結果由於未定義而出現錯誤$.cookie
+0

非常感謝 – Jimmy 2013-05-13 11:26:25