一个combo是由一个div和一个input组成的.
在combo里比如说n条数据.其中有一条是id:1,value:fds
着时候着条数据因为value是带特殊字符,所以在combo的下拉的div中什么都不显示.但选种后显示到input里的时候,显示正常.
(别说ext对特殊字符的处理很好.也别说不信.不信你自己实验下。保证出问题.)
---------------------------------分割线--------------------
着时候我想了另外一个办法.
把fds写成<script>fds</script>
这样编码以后div显示正常了.但input里就变成编码以后的字符了.显示成<script>fds</script>了.
---------------------------------分割线--------------------
我又想了第2个办法.
在select的时候加个监听.强行设置value的值.
结果也不行.input里跟本就不执行我写的.
----------------------------------终结----------------------
我觉得是div显示和input显示的效果不同的问题.实在没有好方法了。
没解决问题就关闭咯,不要乱结帖,你不舒坦我也不舒坦.
有兴趣可以去看下combo的源码, 下拉框实际上就是一个DataView+XTemplate.
下拉的数据会写入到一个div去,你里面有html标签,自然会被浏览器解析.所以要转码.
显示到input正常是因为设置的是value,不会被解析.
[code="javascript"]
var c = new Ext.form.ComboBox({
fieldLabel:'xx',
displayField:'name',
valueField:'value',
mode: 'local',
triggerAction: 'all',
store:new Ext.data.SimpleStore({
fields:['name','value'],
data:[['xx','1'],[' ','2']]
}),
//values.name中的name就是displayField
tpl:'
使用 tpl: 属性试一下。