1

これは私が持っているものです:

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

Googleマップv3、ジオコードを使用しています。

関数 showAddress( param ) を作成しました。これはパラメーターを取り、アドレスであるかどうかを確認し、そうであればコードを返し、そうでなければ0を返します。

リンクを確認すると、このコードを書いていることがわかりますが、「未定義」というアラートが表示されます。

ここで何が問題なのですか?

4

1 に答える 1

2

おお、やっと事件に気がついた。問題は Google マップにはありません。コールバックからではなく、結果を返して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 に答える