在ajax成功回调中调用unblockUI不起作用(IE 8)

时间:2011-06-07 19:11:49

标签: jquery internet-explorer-8 jquery-blockui

我在每个页面上都运行以下代码:

$(document).ready(function () {
    $(document).ajaxStart($.blockUI);
    $(document).ajaxStop($.unblockUI);
    $("form").submit(function() {
        if ($(this).valid() == true) {
            $.blockUI();
        }
    });
});

此代码允许我在AJAX调用和表单帖子中显示“loading ...”消息。总的来说,这很好。但是,我有一个场景,我需要在进行表单发布之前进行AJAX调用以验证一段数据,如下所示:

$.ajax({
    url: '/Item/VerifyFolder/',
    type: 'POST',
    dataType: 'json',
    data: {
        folderName: folderName
    },
    success: function (data, textStatus, jqXHR) {
        $.unblockUI(); 
        if (data.folderItemExists == true)
        {
            $("form").submit();
        }
        else
        {
            if (confirm("The folder specified for this item does not exist.  Do you want to create it?") == true)
                {
                    // ...
                    $("form").submit();
                }
                else
                {
                    return false;
                }
            }
        },
        error: function (jqXHR, textStatus, errorThrown) {
            DisplayError(textStatus);
        }
    });

在我的AJAX成功回调中,我首先打电话给$.unblockUI()。但是,它似乎没有任何效果。因此,当警报弹出时,仍会显示“loading ...”消息。

我在网上看过各种关于IE 8和unblockUI方法的问题的帖子(错误的HTML,需要元标记等),但我还没有找到有效的解决方案。

任何指导都将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:1)

这在AJAX成功回调中对我有用:

$.unblockUI();
$(".blockUI").fadeOut("slow"); 

https://stackoverflow.com/a/1661872/1315626