关于combo的问题.

一个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:'

{[Ext.util.Format.htmlEncode(values.name)]}
'
})
[/code]

使用 tpl: 属性试一下。