ExtJS FormPanel更改元素名称

时间:2010-10-06 16:17:44

标签: javascript extjs formpanel

我有一个FormPanel,其中包含一个创建时添加的复选框树。现在我想更改面板内所有复选框的通用名称模式。根据DOM,名称被正确更改,但是当我提交表单时,仍然会提交旧名称。试着打电话给.doLayout,但没有任何运气。有什么想法吗?

changePredicateName: function (panel, predicateName) {
    var ref = this;
    this.counter = 0;
    panel.cascade(function (o) {
        var name = ref.groupId + "." + predicateName + "." + ref.counter + "_value";
        if (o instanceofnExt.form.Checkbox) {
            o.name = name;
            ref.counter++;
        } else if (o.titleCheckbox) {
            o.titleCheckbox.name = name;
            ref.counter++;
        }
        return true;
    });
    panel.doLayout();
},

1 个答案:

答案 0 :(得分:0)

doLayout仅调整/重新排列对象;它不会更改元素名称等属性。为了更改您创建的元素的名称,您需要执行一些DOM操作,如下所示(假设o是Ext.Element):

if (o instanceofnExt.form.Checkbox) {
    o.name = name;
    o.set({ name: name });
    ref.counter++;
} else if (o.titleCheckbox) {
    o.titleCheckbox.name = name;
    o.titleCheckbox.set({ name: name });
    ref.counter++;
}