折叠时禁用FieldSet项

时间:2010-09-03 10:39:49

标签: extjs

我有Ext.form.FieldSet,里面有一些字段。它看起来像:

var register_options = new Ext.form.FieldSet({
    autoHeight: true,
    title: 'My Title',
    checkboxToggle: true,
    checkboxName: 'register_options',
    items: [item1, item2, item3]
});

取消选中我的字段集复选框(字段集已折叠)时,我不想提交任何字段(item1,item2 ...)。

我可以通过添加一些监听器和禁用字段来实现:

listeners: {
    collapse: function(p) {
        p.items.each(function(i) {
            i.disable();
        },
        this);
    },
    expand: function(p) {
        p.items.each(function(i) {
            i.enable();
        },
        this);
    }
}

这是正确的方法,我怎样才能更好地做到这一点?

2 个答案:

答案 0 :(得分:1)

只要有效,我就没有看到您的代码有任何问题。不那么优雅的替代方案将涉及使用级联功能向下钻取到容器中。

答案 1 :(得分:1)

是的,级联功能(如上面的IT Grunt建议的)对我有用:

listeners: {
    collapse: function(p) {
        p.cascade(function () {
            this.disable();
        });
    },
    expand: function(p) {
        p.cascade(function () {
            this.enable();
        });
    }
}