是否真的没有办法挂钩Ext.js组件的重置事件?

时间:2010-09-22 09:01:21

标签: javascript extjs

当我在Ext.js中重置表单时,它会重置每个子组件,但唯一触发的事件是invalidvalid。将它们挂钩以处理值的清除似乎有点“hacky”,有没有别的办法? “问题域”是我正在编写一个插件来创建依赖的组合框:

Ext.plugins.combobox.DependsOn = function(dependsOn) {
    function init() {
        var cb = this,
            parent = Ext.getCmp(dependsOn);

        parent.on("disable", function() {
            cb.clearValue();
            cb.disable();
        });

        parent.on("select", function() {
            cb.disable(); // dependents will be disabled
            cb.clearValue();

            cb.getStore().load();
            cb.enable();
        });

    }
    return {
        init: function(cb) {
            cb.afterRender = cb.afterRender.createSequence(init);
        }
    }
};

这很有效,直到我调用form.reset(),此时组合框保持启用状态但为空。我希望能够挂钩一些reset事件,然后禁用并启用我的顶级组件以向下级联禁用状态。唉,这似乎不可能,但我希望有人有一个明智的答案。

谢谢。

1 个答案:

答案 0 :(得分:1)

假设“parent”是Ext.form.Field,您可以在parent.reset上使用createSequence。

parent.reset = parent.reset.createSequence(function(){
    //here, do what you would have done with parent.on('reset', ...)
});