1

好的,这是我的 JS 函数:

function GetLatLong() {
    var geocoder = new google.maps.Geocoder();
    var address = $('#txtAddress').val() + ', ' + $('#txtCity').val() + ', ' + $find('drpState').get_text() + ', ' + $find('drpCountry').get_text();
    var result = false;
    geocoder.geocode({ 'address': address }, function (results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            var location = results[0].geometry.location;
            $('#hiddenLatLong').val(location);
            result = true;
        }
        else {
            alert("Geocode was not successful for the following reason: " + status);
            result = true;
        }
    });

    return result;
}

现在,我想要的是,一旦我将值存储在隐藏字段中,我想返回结果。这里发生的情况是,我在按钮单击时调用此函数,但由于调用是异步的,它在单击时返回 false,我无法在隐藏字段中获取结果值。有什么方法可以让我等待或解决一些可以在隐藏字段中获得的方法吗?

4

1 回答 1

1

geocode 函数中的第二个参数是一个回调函数,如果 geocode 结果返回,将调用该函数。因此,如果 Google 返回结果,则应从您给定的代码中设置隐藏值。

但是,您的GetLatLong()功能较早完成,因此返回false. 所以你不应该让你的处理依赖于这个方法的返回值。

于 2012-05-24T06:30:19.000 回答