异步Ajax请求(表单填充)jQuery(onClick工作,onReady没有)

时间:2011-10-15 21:05:04

标签: ajax jquery

我有以下函数,当绑定到onClick()事件时工作正常。但是如果事件被触发onReady()它无法完成它的工作..在方法中的任何点添加alert()允许它工作正常..所以我知道它与异步AJAX请求有关。我只是没有运气成功添加延迟或回调逻辑。不知道如何处理它。

是否存在改进方法的简单方法?我最终在onOpen()上为jQueryUI对话框调用了这个方法..但是对话框触发并且为空..

function performElqLookups(formName) {
    var elqTracker = new jQuery.elq(459);
    //first do the visitor lookup
    var visitorLookup = 'ba109a0a75294aed95ca72b0bc3b345d';
    elqTracker.getData({ key: visitorLookup, lookup: "", success: function() {
        //then check for an email address on the visitor record and do a contact data lookup if there is one
        if (typeof GetElqContentPersonalizationValue == "function") {
            var email = GetElqContentPersonalizationValue("V_ElqEmailAddress");
                if (email != "") {
                    var contactLookup = 'c7e9dd7150464162af6fe1cf471627e5';
                    elqTracker.getData({ key: contactLookup, lookup: "<C_EmailAddress>" + email + "</C_EmailAddress>", success: function() {
                        populateForm(formName);
                        trackPage().done(function( guid ) {
                            $('#elqCustomerGUID').val(guid);
                        });
                    }});
                }
        }
    }});
}

1 个答案:

答案 0 :(得分:0)

您可以将async:false传递给任何ajax调用,例如get() load()ajax()

,从而将Ajax设置为同步

另外,请记住,您应始终使用$(function(){..code in here..})包装代码,因为这是document.onReady的简写