1

在填充所有数据(文本框、下拉菜单等)之前显示的 JQuery dialog() 存在问题。

我只是调用:

$("#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");
        }
    });

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

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

4

2 回答 2

1

这是问题所在:

        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...},
于 2012-05-23T22:41:00.243 回答
1

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

$.blockUI()
// ajax/json calls
$.unblockUI();
于 2012-05-23T23:07:01.250 回答