Ext3.x中的readOnly配置项

本文探讨了从ExtJS 2.0到3.x版本中,表单组件如dateField和comboBox中readOnly属性行为的变化。在3.x版本中,此属性导致组件不可见元素消失,并介绍了一个新的属性editable,用于实现期望的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我接触Ext是从2.0版本开始的,在一家公司做移动项目,他们已经将Ext的代码大部分标签化了,刚开始觉得不习惯,不过现在想想的确封装的很强大。

    这段时间一直在研究3.x版本,我承认我被它的新特性吸引住了,当然,吸引我的不仅仅是这些新特性,在性能和执行效率上也有改良和提高。

    但昨天碰到了一个棘手的问题,在2.0版本中,dateField和comboBox两个组件,有一个配置项叫readOnly,设置为true之后,用户便只能对dateField和comboBox的值进行选择,而无法手动输入,以避免用户输入非法的数据。

    到了3.x的时候,再设置readOnly: true,似乎效果并不那么理想,此时用户的确是无法进行输入,但dateField后面的日期图标和comboBox后面的下拉图标,也同时不存在了。开始我以为是我的代码肯能在不经意中被误改了,于是从官方下载了最新的源码覆盖,但结果一样。当然,我也想过会不会是这个配置项在3.x中被其它属性替代了,但想想也不对,因为Ext是比较注重低版本的兼容性的,例如在3.x中SimpleStore虽然被抛弃了,但为了保持与低版本的兼容性,源码中仍然、使用了Ext.data.SimpleStore = Ext.data.ArrayStore;既然如此,那为何readOnly会出现这样的情况呢?查看API,API中所描述的意思,也表明是仅仅禁用了表单元素,因此我开始认为这是3.x中的bug。

    后来,我从API中找到了另外一个配置项:editable可编辑的,应用为false之后,实现了期望的效果。原来在3.x中,已经被editable替换了,那么此时readOnly与disabled有什么区别呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值