Extjs 4 MessageBox 提示强制

发布于 2024-12-06 16:20:46 字数 63 浏览 0 评论 0原文

有没有什么方法可以使 extjs 4 中的提示消息框强制输入,例如向文本区域添加allowBlank 配置...

Is there any way to make the input mandatory on a prompt messagebox in extjs 4, like add an allowBlank config to the textarea...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

維他命╮ 2024-12-13 16:20:46

遗憾的是,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 拖动到其他位置,它将再次居中。

Ext.MessageBox unfortunately does not support controlling the close-behavior based on the return value of the login handler (at least in Ext 4.0.2a the return value is not evaluated at all).

As a workaround you can just re-open another MessageBox in your callback handler with the same (or updated) config.

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));
    }
});

In some cases the user could experience a slight flickering. In my tests, however, it was not noticeable at all.
If the user has dragged the MessageBox to a different position it will recenter again.

笨死的猪 2024-12-13 16:20:46

强制是指强制用户选择可用按钮之一吗?

如果是这样,您可以用来

'closable: false' 

防止用户在不单击按钮的情况下关闭该框。

By mandatory do you simply mean force the user to select one of the available buttons?

If so, you can use

'closable: false' 

to prevent the user closing the box without clicking on a button.

最美不过初阳 2024-12-13 16:20:46

我创建了自定义函数来设置提示输入所需的提示窗口作为参数

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');
            }
        });
    }

I created custom function for set prompt input required with prompt window as argument

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');
            }
        });
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文