更新 1:我已经完成了回调函数。 这是我的解决方案。我只是在打开对话框 2 时添加了一个回调函数,并添加了一个隐藏元素来接收对话框 2 中的用户更改。现在一切都完成了。谢谢!
--------老问题----
我的英语很差,所以我写得很轻松。
我正在使用 Jquery Dialog,我想显示多个对话框。(对话框 1 打开对话框 2 打开对话框 3...)
但问题是当我打开 dialog1 然后打开 dialog2(确认对话框,以便用户可以在 dialog2 中选择是/否并将值返回给 dialog1)。
我知道 Javascript 是异步的,所以当用户打开对话框 1 并单击打开对话框 2 时,它不会等待对话框 2 中的事件完成。
这是我的源代码(简单逻辑)
$("#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");
}