Ext3.x中的readOnly配置项

我接触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有什么区别呢?

你可能感兴趣的:(Ext3.x中的readOnly配置项)