javascript - jquery - 如何使对话框按钮等待另一个对话框的响应?

标签 javascript jquery dialog

更新 1:我已经完成了回调函数。 这是我的解决方案。我只是在打开对话框 2 时添加一个回调函数和一个隐藏元素来接收用户在对话框 2 中所做的更改。现在一切都完成了。谢谢你!

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

--------老问题----------------

我的英语不好,所以我写起来很容易。

我正在使用 Jquery Dialog,我想显示多个对话框。 (对话框1打开对话框2打开对话框3...)

但问题是当我打开dialog1然后打开dialog2时(确认对话框,以便用户可以在dialog2中选择是/否并将值返回给dialog1)。

我知道Javascript是异步的,因此当用户打开dialog1并单击打开dialog2时,它不会等待dialog2中的事件完成。

Here is my source code (简单逻辑)

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

最佳答案

您当然应该在对话框回调函数中编写代码。在 dialog1 中,您只需弹出 dialog2 并因为它是确认对话框,因此它应该是模型对话框,并且您将代码绑定(bind)到 OK 按钮 code>,那么你就可以得到“正确”的结果。通过添加新参数来更改 showconfirmdialog:callbackfunction

关于javascript - jquery - 如何使对话框按钮等待另一个对话框的响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14658543/

相关文章:

javascript - 通过 setInterval/setTimeout 访问评估代码

javascript - 使用 React 传递参数

javascript - 如何将文本和图像淡入淡出作为幻灯片?

javascript - 使用平滑滚动时更新地址栏中的哈希 URL 并添加事件类

python - PyQt 对话框 - 如何让它在按下按钮后退出?

javascript - Angularjs 失败 http get 请求

javascript - 将所有 Ajax 代码放在一个 PHP 文件中是不是很糟糕?

javascript - Jquery/Jquery 移动版 - Aptana Studio 3

android - 在用户点击图表的地方显示一个小弹出窗口 (achartengine)

android - 设置自定义对话框的宽度以包装内容android