所以我有一个消息框,我建立了能够发送消息。它有2个输入,一个OK和Cancel按钮。我可以很容易地访问内容并完成正常的逻辑设置:
Ext.Msg.show({
title: 'Send a Message: ',
cls: 'MessageBox',
html: '<div class="message-InnerContainer" >' +
'<input type="text" id="messageBoxSubject" placeholder="Subject" class="messageBox-Input"/>' +
'<textarea id="messageBoxMessage" placeholder="Message" class="messageBox-TextArea"></textarea>' +
'<div>',
closable: false,
buttons: [
{ no: 'Cancel', text:'Cancel', cls:'messageBox-CancelButton'},
{ yes: 'OK', text:'Ok', cls:'messageBox-OkButton'}
],
fn: function (btn) {
if (btn == 'ok') {
//do success logic
}
else (){
//do failure logic
}
}
});
只有一个问题:当按下确定时,我似乎找不到让方框自动关闭的方法。理想情况下,我想快速检查以确保两个输入不为空。我想我可能只是通过在html部分放置自定义按钮来覆盖按钮,但是如果有办法停止自动关闭,那么它在语法上会更加令人愉悦和可读。有谁知道它是否可能?
答案 0 :(得分:2)
哦,我的!你应该考虑使用一些常规的Ext text field和text area作为窗口的items,而不是你自己的html ...
无论如何,请使用按钮的handler
,而不是fn
处理程序。你可以在那里做任何你想做的事情,只有在你喜欢的时候关闭窗口:
buttons: [
{ text:'Cancel', cls:'messageBox-CancelButton', handler: function() {
this.hide();
}},
{ text:'Ok', cls:'messageBox-OkButton', handler: function() {
var allGood = false;
// do your stuff here
// ... and if your satisfied with the result, close the window
if (allGood) {
this.hide();
}
}}
]