在加载所有相关数据之前如何不显示 JQuery 对话框

本文关键字:何不 显示 对话框 JQuery 数据 加载 | 更新日期: 2023-09-27 18:35:05

我在填充所有数据(文本框,下拉菜单等)之前显示JQuery对话框()时遇到问题。

我只是打电话:

$("#myDiv").dialog("open") is called

然后在对话框属性下:

       $("#myDiv").dialog({
        title: "Edit User",
        autoOpen: false,
        height: 500,
        width: 500,
        modal: true,
        open: function(event,ui){
        url = "/controller/action" + param;
        $(this).load(url);
        ...various $.ajax and $.GetJson calls to populate form drop down menus and other fields...},
        buttons: {
            Cancel: function () {
                $(this).dialog("close");
            }
        },
        close: function () {
            allFields.val("").removeClass("ui-state-error");
        }
    });

因此,一个对话框打开,大约几秒钟后闪烁并填充数据。有时它会滞后,数据根本不会进入字段。我可能需要多次关闭/重新打开对话框才能最终填充它。非常令人沮丧。

让它工作的最简单方法是什么?我希望对话框弹出窗口每次都正确填充数据,并且在准备就绪之前不显示。

在加载所有相关数据之前如何不显示 JQuery 对话框

这是问题所在:

        open: function(){
    ...various $.ajax and $.GetJson calls to populate form drop down menus and other fields...},
不要在打开时填充

,在创建时填充

create: function(){
    ...various $.ajax and $.GetJson calls to populate form drop down menus and other fields...},

您可以尝试使用BlockUI插件并在Ajax/Json调用之前阻止并在调用之后取消阻止。这也将允许您在对话框上显示加载div。

$.blockUI()
// ajax/json calls
$.unblockUI();