防止MessageBox关闭

时间:2013-08-28 07:46:39

标签: extjs

我有一个像

那样配置的MessageBox
Ext.MessageBox.show({
 buttons:Ext.MessageBox.OKCANCEL,
 prompt:true,
 buttonText:{ok:"Button1",cancel:"Button2"},
 fn:function(btn, text, cBoxes){
  if(btn=='ok'){
   // do not close
   // return false does not help
  }
 }
});

我不知道如何阻止它关闭按钮点击。特别是,当用户点击“确定”按钮时,我不想让它关闭。我在网上看过覆盖,但不知道如何正确配置按钮属性。我想,应该有一个非常简单的解决方案来完成这项任务。

1 个答案:

答案 0 :(得分:1)

您应该使用常规window,您可以完全控制它。

在你的情况下,这将是这样的:

Ext.widget('window', {
    autoShow: true
    ,closable: false
    ,modal: true
    ,title: "My window"
    ,defaults: {
        margin: 5
    }
    // you can obviously compose the items you want; an input field
    // is what you get with the prompt window
    ,items: [{
        xtype: 'textfield'
        ,itemId: 'inputField'
    }]
    ,buttons: [{
        text: "Button1"
        ,handler: function(button) {
            // here's how to get a ref to the window (for closing)
            var win = button.up('window'),
                // here's the value of the field
                input = win.down('#inputField').getValue();

            // you can close the window if you want, or not
            if (!Ext.isEmpty(input)) {
                win.close();
            }
        }
    },{
        text: "Button2"
        ,handler: function() {
            // ...
        }
    }]
});