3

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

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

此代码允许我在 AJAX 调用和表单发布期间显示“正在加载...”消息。一般来说,这工作正常。但是,我有一个场景,我需要在进行表单发布之前进行 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(). 但是,它似乎没有任何效果。结果,弹出警报时仍然显示“正在加载...”消息。

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

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

4

1 回答 1

1

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

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

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

于 2013-09-04T16:06:49.327 回答