You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让ExtJS的form.getValues()忽略子组件,减少表单提交数据量?

解决ExtJS表单提交时忽略指定子组件的问题

你的问题是表单里有个动态生成大量网格的容器,提交时form.getValues()会带出海量无关数据,要让表单完全忽略这个容器及其内部所有元素,直接按下面的方式配置即可:

  • 给目标容器添加submitValue: false,确保容器自身不参与表单提交
  • 通过defaults配置递归给所有子组件设置submitValue: false,覆盖子组件默认的提交行为

修改后的代码示例:

initComponent() {
    const me = this;
    Ext.apply(me, {
        items: [
            {
                xtype: 'container',
                name: 'BasicIndicatorsContainer',
                submitValue: false, // 容器自身不提交
                defaults: {
                    submitValue: false // 所有子组件都不提交
                },
                items: [
                    // controller forms some 32 grids here
                ]
            },
            // 其他表单组件...
        ]
    });
    me.callParent(arguments); // 必须调用父类初始化方法,否则组件可能异常
}

补充说明:

  • ExtJS中,submitValue: false是表单组件的核心控制属性,只要设置为false,form.getValues()就会跳过该组件及其值
  • 容器默认submitValue是false,但它的子组件(比如网格内的编辑控件、内嵌表单字段)默认可能为true,所以必须用defaults批量设置,才能彻底忽略整个容器内部的所有元素
  • 如果后续需要让容器内某个特定组件参与提交,只需单独给该组件设置submitValue: true即可覆盖默认配置

内容的提问来源于stack exchange,提问作者jonny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 10:05:08