首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Extjs 4向窗体动态添加多个面板

Extjs 4向窗体动态添加多个面板
EN

Stack Overflow用户
提问于 2012-02-21 10:28:21
回答 1查看 1.6K关注 0票数 1

我有3个面板,每个面板将有7-10个字段.

主窗体面板包含一个组合框和3个面板。

基于组合体选择的值,我隐藏剩下的2个面板,并显示一个面板。

这三个面板都对字段进行了allowBlank: false验证。

在提交表单时,隐藏的字段也会被验证,并阻止表单提交。所以我想禁用隐藏的字段。我在用这个密码。

代码语言:javascript
复制
question_multiple_option.query('.component').forEach(function(c){c.setDisabled(true);});

但是在EXT 4.X中,当提交表单时,禁用的字段也会被验证。

在Ext2.x和3.X中,禁用字段没有验证,也没有提交。

以前我在ext 2.X中使用了这段代码

代码语言:javascript
复制
 Ext.getCmp('option').cascade(function(comp){
                        if (comp.isFormField) {
                            //comp.enable();
                              comp.disable();
                        }
                    });

它是通过隐藏和显示面板来实现多个面板的表单的正确方法吗?或者如何动态地向窗体添加/移除面板?

有没有更好的方法来实现这种形式。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2012-02-21 17:50:12

措辞很好的q。

它不应该用于验证禁用字段。

关于这一点,有一个是在4.1中修正的。我不确定在您使用的4.x版本中它的外观如何,但是如果不能迁移,可以在代码中添加一个覆盖到isValid方法的Ext.form.field.Base中,以匹配4.1代码。就像这样:

代码语言:javascript
复制
Ext.override(Ext.form.field.Base, {
    isValid : function() {
        var me = this;
        return me.disabled || Ext.isEmpty(me.getErrors());
    }
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9375897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档