在加载所有相关数据之前如何不显示 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");
}
});
因此,一个对话框打开,大约几秒钟后闪烁并填充数据。有时它会滞后,数据根本不会进入字段。我可能需要多次关闭/重新打开对话框才能最终填充它。非常令人沮丧。
让它工作的最简单方法是什么?我希望对话框弹出窗口每次都正确填充数据,并且在准备就绪之前不显示。
这是问题所在:
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();