我正在尝试覆盖ExtJS 4中的window.confirm。覆盖应返回true或false(就像确认但有很好的UI一样)。
window.confirm=function(msg) {var val=Ext.create("Ext.Window",{
title : 'Extra window!',
width : 150,
height: 100,
closable : true,
html : msg,
modal : true,
onEsc:aa,
items:[
{
xtype:'button',
text:'Ok',
handler:function()
{
return true;
}
},
{
xtype:'button',
text:'Cancel',
handler:function(){
return false;
}
}
]
}).show();
function aa(btn)
{
return false;
}
无论我在哪里使用确认,我都会得到模态窗口,但它不会返回true或false,而是异步运行。
我尝试使用showModalDialog而不是确认,这次我也没有获得返回值。
是否可以根据用户选择返回true或false(当用户选择ok然后返回true,单击取消时返回false)
答案 0 :(得分:4)
您无法以同步方式调用模式对话框。如果你想以某种方式将它包装到你将从应用程序中的不同位置调用的实用程序函数中,你需要做这样的事情:
showConfirmationDialog: function(question, yesCallback) {
//... Create you window
//... Show window - add handler to the YES button and call yesCallback from it
},
...
otherFunction: function() {
this.showConfirmationDialog('Do you want to delete record?', function() {
// Delete record
});
}