有没有办法在extjs 4中的提示消息框上强制输入,比如将一个allowBlank配置添加到textarea ...
答案 0 :(得分:6)
作为一种解决方法,您可以使用相同(或更新)的配置重新打开回调处理程序中的另一个MessageBox。
Ext.Msg.prompt('Name', 'Please enter your name:', function(btn, text, cfg) {
if(btn == 'ok' && Ext.isEmpty(text)) {
var newMsg = '<span style="color:red">Please enter your name:</span>';
Ext.Msg.show(Ext.apply({}, { msg: newMsg }, cfg));
}
});
在某些情况下,用户可能会遇到轻微的闪烁。然而,在我的测试中,它根本不明显。 如果用户将MessageBox拖到另一个位置,它将再次重新定位。
答案 1 :(得分:3)
强制执行,您只是强迫用户选择其中一个可用按钮?
如果是,您可以使用
'closable: false'
以防止用户在未点击按钮的情况下关闭此框。
答案 2 :(得分:0)
我创建了自定义函数来设置需要的提示输入,并以提示窗口作为参数
setPromptRequired: function(promptWin) {
const field = promptWin.down('textfield');
const button = promptWin.down('#ok');
button.disable();
field.on({
change: function(item, value) {
if(value && value.trim() !== '') {
button.enable();
} else {
button.disable();
}
}
});
promptWin.on({
beforehide: function(){
button.enable();
field.resumeEvent('change');
},
beforeclose: function(){
button.enable();
field.resumeEvent('change');
}
});
}