更新 1: コールバック関数を使用しました。 これが私の解決策です。ダイアログ 2 を開くときにコールバック関数を追加し、非表示の要素を追加して、ダイアログ 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");
}