我試圖描述我的問題儘可能容易.. 當我提交表單時,我需要調用另一個函數。我嘗試了提交,但不幸的是它無法正常工作,因爲我需要調用的函數是Google Maps API,從用戶選擇位置的文本框中獲取座標。函數從未被調用,或者它似乎也被調用晚..所以我嘗試這樣:谷歌地圖API將不會返回提交座標
<input type="button" value="Search" name="submitBtn" id="subBtn1" onclick="onSubmit1();">
和功能onSubmit1()是如下:
function onSubmit1() {
codeAddress();
// document.forms["searchForm"].submit();
}
點擊按鈕,該功能的工作原理.. codeAddress讓我從谷歌緯度和經度後服務器並將其預填充到我的searchForm中的文本框中。
但是,如果我刪除多布爾斜線和要提交的表單,會發生以下情況:
表單提交,但緯度和經度始終是空字符串..
任何想法..是否有可能,onSubmit1函數中的第二行只是不等待goole來完成它的工作?
感謝您的任何提示..
請知道的形式和它的所有功能很好地工作,如果我例如通過自己設置的座標並提交表格,然後..有在
沒問題編輯
function codeAddress() {
geocoder = new google.maps.Geocoder();
var address = document.getElementById("my-address").value;
geocoder.geocode(
{ 'address': address},
function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var lat = results[0].geometry.location.lat();
var lng = results[0].geometry.location.lng();
document.getElementById("my-lat").value = lat;
document.getElementById("my-lng").value = lng;
} else {
//alert("Geocode was not successful for the following reason: " + status);
}
});
}
請出示'codeAddress()'函數的定義。我**猜測**是一個立即返回的異步函數。 – Steve
function codeAddress(){ geocoder = new google.maps.Geocoder(); var address = document.getElementById(「my-address」).value; geocoder.geocode({'address':address},function(results,status)if(status == google.maps.GeocoderStatus.OK){lather = results [0] .geometry.location.lat ); var lng = results [0] .geometry.location.lng(); document.getElementById(「my-lat」)。value = lat; document.getElementById(「my-lng」)。value = lng ; } else { // alert(「Geocode由於以下原因而不成功:」+ status); } }); } –
嗨,感謝您的快速回復..我沒有找到如何正確格式化功能,所以帖子看起來不像一團糟,對不起 –