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

ExtJS 6.0升级至6.2后同名单选按钮跨表单干扰问题问询

ExtJS 6.0到6.2版本同名单选按钮dirty属性干扰问题原因分析

问题现象

  • 6.0版本中,两个独立表单面板内的同名单选按钮状态完全隔离,通过dirty属性检查数据变更时不会互相干扰;
  • 升级至6.2及后续7.6版本后,修改其中一个面板的单选按钮,另一个面板的dirty状态会被错误触发,破坏了表单间的独立性。

版本行为差异根源

  • 6.0版本逻辑:表单组件的dirty状态由所属表单的Ext.form.Basic实例单独维护,每个表单面板拥有独立的状态作用域,同name的单选按钮分属不同作用域,状态互不关联。
  • 6.2版本改动:ExtJS调整了单选按钮的状态追踪机制,开始基于name属性全局统一管理同组单选按钮的状态。即使单选按钮位于不同表单面板,只要name相同,框架就会将其视为同一组,状态变更时会跨表单同步dirty标记——这一改动是为了优化全局表单组件的状态一致性,但忽略了独立表单的隔离需求。

local属性无效的原因

单选按钮的local属性仅用于同一表单内的局部分组,作用是让同name的单选按钮在当前表单内独立分组,无法覆盖6.2版本新增的全局状态追踪逻辑,因此无法解决跨表单的dirty干扰问题。

临时规避方案

目前有效的临时解决方法是为不同表单面板内的单选按钮设置唯一的name属性,避免框架将其识别为同一全局分组,从而恢复表单间的状态隔离。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 15:17:04