1

这就是我所拥有的:

http://jsfiddle.net/JhCKW/1/

我使用谷歌地图 v3,地理编码。

我做了一个函数 showAddress(param)。这需要参数,检查它是否是地址,如果是,则返回绳索,如果不是,则返回 0。

如果您检查链接,您会看到我已经为此编写了代码,但我只是收到一个警报“未定义”。

这里有什么问题?

4

1 回答 1

2

哦,我终于意识到了这个案子。问题不在谷歌地图上。您不是从回调返回结果,showAddress而是从回调返回结果。所以,它实际上无处可去。您还需要使用回调显示结果。像这样:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script>

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?libraries=geometry&sensor=false"></script>
<script type="text/javascript">
  var geocoder;
  function showAddress(address, callback)
  {
    if (typeof(geocoder) == 'undefined') geocoder = new google.maps.Geocoder();

    geocoder.geocode( { 'address': address}, function(results, status) {
      if (status == google.maps.GeocoderStatus.OK) {
        callback(results[0].geometry.location);
      } else {
        callback(0);
      }
    });
  }

  $(document).ready(function(){
    $('#address').blur(function(){
      showAddress( $('#address').val(), function(result)
      {
        if (result === 0)
          alert('Adressen not found');
        else{
          alert(result);
          $('#cords').val( result );
        }
      });
    });
  });
</script>

<input type="text" name="address" id="address">

你可以在这里检查它的工作:http: //jsfiddle.net/BgDQc/2/

于 2011-10-26T10:37:19.047 回答