1

更新 1: コールバック関数を使用しました。 これが私の解決策です。ダイアログ 2 を開くときにコールバック関数を追加し、非表示の要素を追加して、ダイアログ 2 でユーザーが変更した内容を受け取ります。これですべて完了です。ありがとうございます!

http://jsfiddle.net/N6qbR/2/

-------古い質問----------------

私の英語は下手なので簡単に書きます。

Jquery Dialog を使用していますが、複数のダイアログを表示したいと考えています。(dialog1 を開く dialog2 を開く ダイアログ 3...)

しかし、問題は、dialog1 を開いてから dialog2 を開くときです (ダイアログを確認して、ユーザーが dialog2 で Yes/No を選択し、dialog1 に値を返すことができるようにします)。

私はJavascriptが非同期であることを知っているので、ユーザーがdialog1を開いてdialog2を開くをクリックすると、dialog2のイベントが終了するのを待ちません。

これが私のソースコードです(単純なロジック)

$("#dialogForm").dialog({           
        autoOpen: false,
        height: height,
        width: width,
        modal: true,        
        close: function() // Hàm này được gọi tự động khi đóng dialog
        {           
            //abc();
            // Sau khi thêm mới thành công thì reset lại form
            resetForm();
            $("#dialogForm").dialog( "close" );
        },          
        buttons: {
            "Ok": function() {              
                var choose = showDialogConfirm(250, 200, "Bạn có đồng ý thêm?", test);      
                if(choose == true)
                {
                    // do some good
                }

            },
            "Cancel": function() {
                $("#dialogForm").dialog("close");
            }
        }
    }); 


    $("#dialogForm").dialog("open");

function showDialogConfirm(width, height, message)
{
    $("#dialogConfirm").toggle();           
    $("#dialogConfirm").dialog({            
        autoOpen: false,
        height: height,
        width: width,
        modal: true,        
        close: function() // Hàm này được gọi tự động khi đóng dialog
        {           
            $("#dialogConfirm").dialog( "close" );
        },          
        buttons: {
            "Yes": function() {         
                return true;
                $("#dialogConfirm").dialog("close");
            },
            "No": function() {
                return false;
                $("#dialogConfirm").dialog("close");                    
            }
        }
    });

    $("#dialogConfirmContent").html(message);   
    $("#dialogConfirm") 
        .dialog("open");
}
4

1 に答える 1

0

間違いなく、ダイアログにコードを書く必要がありますcallback functionsdialog1ポップアップして確認ダイアログを表示するだけなのでdialog2、モデルダイアログになり、コードをにバインドすると、「正しい」結果が得OK buttonられます。新しいパラメータを追加して、をget変更します。showconfirmdialogcallbackfunction

于 2013-02-02T04:28:09.490 に答える