Google Map API Geocoder。验证地址时,函数无法返回布尔值

时间:2019-05-19 17:02:27

标签: javascript google-maps-api-3 google-geocoding-api

我只想制作一个简单的JavaScript函数来验证地址(来自用户的输入)。我已经用谷歌搜索解决方案。我正在使用Google Map API Geocoder。到目前为止,我的程序所能做的就是在地址有效或无效时发出警报消息。 但是,如果地址有效,我希望函数返回true,否则返回false,以便可以将该布尔值分配给另一个变量。

下面是我的功能。 validateAddress。您可以看到该函数具有警报消息,以告知用户该地址是否有效,并且还返回true或false。

我已经仔细测试过。问题在于该函数始终返回false,但是警报消息始终正确。我的意思是它会正确警告地址是否有效,但是该功能始终返回false。 谁能帮我。我是新来的。预先感谢

//this function validate the address
function validateAddress(addressID)
{
  // //TODO - use google api
  var addr = document.getElementById(addressID);
  this.returnValue=false;
    // Get geocoder instance
    var geocoder =new google.maps.Geocoder();
    // Geocode the address
    geocoder.geocode({
      'address': addr.value
    }, function(results, status) {
      console.log("this function is executed");
      if (status === google.maps.GeocoderStatus.OK && results.length > 0)
      {
        // set it to the correct, formatted address if it's valid
        addr.value = results[0].formatted_address;
        this.returnValue= true;
        alert(addr.value+ " address valid");
        // show an error if it's not
      }
      else
      {
        this.returnValue= false;
        alert(addr.value+ " address not valid");
      }
    });
    console.log("After: "+this.returnValue);

    return this.returnValue;
}

0 个答案:

没有答案