我有一個JavaScript問題,我需要一個函數在另一個函數運行之前運行並完成。如何依次運行JavaScript代碼?
以下是我需要先運行並完成的代碼。正如您所看到的,我正在循環顯示錶單中的所有地址輸入字段,並通過Google Maps API對其進行地理編碼。
$('#form input:text.address').each(function() {
var address = $(this);
var Geocoder = new google.maps.Geocoder();
Geocoder.geocode({ 'address': address.val() }, function(results, status) {
// Store the results in a hidden input field.
});
});
完成此操作後 - 也就是說,在所有來自Google Maps API的響應都返回後 - 我需要提交表單。下面是當前AJAX代碼提交我使用:
$('#form').ajaxForm(
{
success:
function() {
...
}
}
);
我遇到的問題是谷歌地圖API迴應之前提交表單。 ajaxForm()
方法允許一個beforeSubmit
回調函數,但仍然不等待函數完成。我意識到這是因爲JavaScript是異步的,但我不確定如何解決這個特定的問題。
任何幫助表示讚賞!謝謝!
我不知道,如果你想重新創建每次地址解析器您遍歷每個功能。 – 2009-10-21 20:57:37
是的,我認爲這是一個很好的電話。謝謝,克里斯B. – 2009-10-21 21:22:05