加载页面时阻止ui

时间:2012-02-02 10:39:30

标签: javascript jquery-blockui

我想阻止我的ui直到我的下拉中的值未加载 我的js文件代码如下

$(document).ready(function() {
    // Load All Toll Plazas
    FillInCascadeDropdown({ userType: -1 }, "#ddlTollPlazas", "/Home/GetTollPlazas/" + -1);
}

function FillInCascadeDropdown(map, dropdown, action) {
    $(dropdown).empty();
    $.blockUI({ message: '<img src="/Content/images/ajax-loader.gif"/>' });
    $.post(action, map, function(data) {
        $.each(data, function() {
            $(dropdown).append("<option value=" + this.Value + ">" + this.Text + "</option>");
        });
    }, "json");
    $.unblockUI();
}

上面的代码无法处理页面加载。

1 个答案:

答案 0 :(得分:1)

我认为你的问题是你在调用blockUI后立即解锁。您需要将unblock调用移动到“Success”回调函数。回调的概念有点棘手。基本上这是在帖子成功后运行的代码。我确定您已看过此页面,但请参阅jQuery post page以查看您需要放置回调的位置,并here了解有关回调的更多信息(如果需要)。祝你好运!

以下是它的外观:

function FillInCascadeDropdown(map, dropdown, action) {
    $(dropdown).empty();
    $.blockUI({ message: '<img src="/Content/images/ajax-loader.gif"/>' });
    $.post(action, map, function(data) {
        $.each(data, function() {
            $(dropdown).append("<option value=" + this.Value + ">" + this.Text + "</option>");
        });

        $.unblockUI();
    }, "json");