ExtJS FormPanel 更改元素名称

发布于 2024-09-26 01:11:17 字数 632 浏览 4 评论 0原文

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

I have a FormPanel with a tree of checkboxes wich are added on creation. Now i want to change the general name pattern of all checkboxes inside the panel. According to the DOM the names are changed correctly but when i submit the form still the old names are submitted. Tried calling .doLayout but without any luck. Any ideas?

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();
},

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

姐不稀罕 2024-10-03 01:11:17

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++;
}

doLayout only resizes / rearranges objects; it does not change properties such as the name of an element. In order to change the names of the elements you've created, you'll need to do some DOM manipulation like the following (Assuming o is an 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++;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文