jQuery Dialog在getScript()调用上离开页面

时间:2011-10-14 19:24:44

标签: jquery-ui jquery

我有以下jQueryUI Dialog元素..我正在尝试进行AJAX调用以在启动时填充表单..我也使用Ajax来加载实际的表单..

调用populateForm方法时会出现问题..

当调用$ .getScript方法时,对话框消失,浏览器离开我的页面。

任何想法?

我被困住了!

DIALOG

$('#highValueSurvey').dialog({
            autoOpen: false,
            modal: true,
            width: 900,
            resizable: false,
            open: function(event, ui) {
                $("#highValueSurvey").load('/longstoryshort/forms/high.html');
                $("#highValueSurvey").dialog('option', 'position', 'center');
                populateForm('#FY12-Q1-AM-ALL-ECMC-VML-ProfilingForm');
            },
            buttons: {
                'Submit': function() {
                    var path = $(this).data('link').href; // Get the stored result
                    doAjaxPost('#FY12-Q1-AM-ALL-ECMC-VML-ProfilingForm');
                    setCookie(highValueCookieName, -1, 1000);
                    window.location.href = path;
                }
            }
        });

点击活动

$("a.clickHighValueAsset").click(function(e) {
    cookie_value = getCookie(highValueCookieName);
    if (cookie_value != -1) {
        e.preventDefault();
        e.stopImmediatePropagation();
        $("#highValueSurvey")
                .data('link', this)// bind the url from the HREF to the dialog UI for redirect later
                .dialog('open');
    }
    else {
        return true;
    }
});

人口方法

function populateForm(formName) {
    if (typeof eMail != 'undefined') {
        elqServlet = window.location.protocol + '//' + window.location.host + '/longstoryshort/forms/lookup.jsp?email=';
        $.getScript(elqServlet + eMail, function() {
            $(':input', '#' + formName).each(function() {
                var field = '#' + this.name + '';
                $(field).val(GetElqContentPersonalizationValue(this.name));
            });
        });
    }
}

1 个答案:

答案 0 :(得分:0)

包装异步的populateForm()..然后在其成功回调中调用window.href重定向!

示例:

            'Submit': function() {
                $.ajax({
                            type: "POST",
                            async: true,
                            url:  $("#FY12-Q1-AM-ALL-ECMC-VML-ProfilingForm").attr('action'),
                            data: $("#FY12-Q1-AM-ALL-ECMC-VML-ProfilingForm").serialize()
                        });
                setCookie(highValueCookieName, -1, 1000);
                $(":button:contains('Submit')").hide();
                $("#highValueSurvey").load('/longstoryshort/forms/confirmation.html');
                $("#highValueSurvey").dialog({
                            close: function() {
                                var path = $(this).data('link').href; // Get the stored result
                                window.location.href = path;
                            }
                        });
            }