首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ExtJs-5中同步执行MessageBox显示函数

在ExtJs-5中同步执行MessageBox显示函数
EN

Stack Overflow用户
提问于 2022-04-01 06:54:22
回答 1查看 29关注 0票数 0

我希望在ExtJs-5中同步执行Ext.Msg.show()函数。

代码语言:javascript
复制
onButtonClick : function() {
1. some code...
2. Ext.Msg.show({
            title : 'Confirm Please',
            msg : 'Please be informed that record will only save when click ok.',
            buttons : Ext.Msg.OKCANCEL,
            icon : Ext.Msg.QUESTION,
            fn : function(btn) {
                    if ('cancel' === btn) {
                        return;
                    }
                }
            });

3. other message box ...
4. other code ...
}

上面的函数同步执行每个步骤1、2、3和4,但在步骤2中不等待用户交互。它直接移动到步骤3,然后移到步骤4。但是,我只想在用户单击“确定其他”终止下面的步骤时执行步骤3。

有人能检查并让我知道可能的代码,我需要添加使之成为可能?谢谢

EN

回答 1

Stack Overflow用户

发布于 2022-04-04 11:13:48

有一种更简单和集成的方法来完成确认窗口:Ext.Msg.confirm

请记住,与纯javascript相比,ExtJ中的“确认”是异步的。因此,步骤3/4应该移到btnId==yes条件块:

下面是一个例子:

代码语言:javascript
复制
Ext.Msg.confirm("Confirm", "Are you sure?", function(btnId){
    if(btnId == "yes"){
        // User clicked YES
        // Move here step 3/4
    }
    else {
        // User clicked NO
    }
});

奖励提示:没有什么能阻止您在确认中嵌套确认,如下所示:

代码语言:javascript
复制
// Confirm #1
Ext.Msg.confirm("Confirm", "Are you sure?", function(btnId){
    if(btnId == "yes"){
        // User clicked YES

        // Confirm #2
        Ext.Msg.confirm("Confirm", "Are you REAAALLY sure?", function(btnId){
            if(btnId == "yes"){
                // User clicked YES
            }
            else {
               // User clicked NO
            }
        });

    }
    else {
        // User clicked NO
    }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71702919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档