こんにちは、私より賢い人たち。;) コードのこの奇妙な動作を理解することは本当にできません。
ボタンが押されたときに関数 fixedlocation() を実行して、有効なアドレスが見つかるかどうかを確認し、コードを実行することになっています。
それが適切に機能するかどうかを確認するために、変更する必要があるブール値の状態を示すアラートがコードに含まれています。理由はよくわかりませんが、ボタンを2回押してからのみ機能します。つまり、有効なアドレスが見つかったとしても、最初にアラートが誤って表示されます...
最初は、変数を定義した場所に関係があるに違いないと思っていましたが、2回目は機能しませんでしたか?
助けや正しい方向への指摘は大歓迎です。
var geoinfobool=new Boolean();
function fixedlocation()
{
var addresscoordinates = new google.maps.LatLng(document.getElementById('addresslat').value,document.getElementById('addresslng').value)
geocoder.geocode({'latLng': addresscoordinates}, function(results, status)
{
if (status == google.maps.GeocoderStatus.OK)
{
geoinfoavailable(true);
//do other stuff in here//
}
else
{
geoinfoavailable(false);
//do other stuff in here//
}
});
alert(geoinfobool);
}
function geoinfoavailable(state)
{
geoinfobool = state;
}