有没有办法在extjs 4的提示消息框中强制输入,比如在textarea中添加一个allowBlank config ...
7y4bm7vi1#
不幸的是,Ext.MessageBox不支持基于登录处理程序的返回值来控制关闭行为(至少在Ext 4.0.2a中,根本不计算返回值)。作为一种解决方法,您可以在回调处理程序中使用相同(或更新)的配置重新打开另一个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拖到不同的位置,它将再次回到中心。
yxyvkwin2#
强制性是指强制用户选择一个可用按钮吗?如果是这样,您可以使用
'closable: false'
以防止用户在未单击按钮的情况下关闭框。
oiopk7p53#
我创建了一个自定义函数,用于将提示窗口作为参数设置为所需提示输入
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'); } }); }
3条答案
按热度按时间7y4bm7vi1#
不幸的是,Ext.MessageBox不支持基于登录处理程序的返回值来控制关闭行为(至少在Ext 4.0.2a中,根本不计算返回值)。
作为一种解决方法,您可以在回调处理程序中使用相同(或更新)的配置重新打开另一个MessageBox。
在某些情况下,用户可能会遇到轻微的闪烁。但是,在我的测试中,它根本不明显。如果用户将MessageBox拖到不同的位置,它将再次回到中心。
yxyvkwin2#
强制性是指强制用户选择一个可用按钮吗?
如果是这样,您可以使用
以防止用户在未单击按钮的情况下关闭框。
oiopk7p53#
我创建了一个自定义函数,用于将提示窗口作为参数设置为所需提示输入