我有一个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();
},
答案 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++;
}