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

そのため、ダイアログが開き、約 1 秒後に点滅してデータが入力されます。時々遅れて、データがフィールドにまったく入らないことがあります。最終的に入力される前に、ダイアログを複数回閉じて再度開く必要がある場合があります。とてもイライラします。

これを機能させる最も簡単な方法は何ですか? ダイアログポップアップに毎回データが適切に入力され、準備が整うまで表示されないようにしたい。

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 に答える