用过Extjs的朋友相信都知道在Extjs的Combobox组件中是由两个值来组成的。一个是displayField这个是用来显示给我们看 的,而另一个是真正给系统用的valueField,举个例子会更贴切一点。假如我们有一个下拉列表是公司选择,那我们看到的option中的值应该是公 司的名称,而实际提交给系统的值可能是公司的ID或者编码之类的。而Extjs中的combobox也是同样的道理,但是它只提供了一个 setValue()函数,我们在调用的时候发生的结果就是要么显示的值和真实的值同是id,或者同是名称。虽然同是id的时候系统可以正常运行,但这样 用户交互就显示的友好了。相信大家都不明白你的1,2,3,代表首什么。
在网上查了一下,有的朋友说可以用setvalue()/setRawValue( Mixed value ) 来分别完成,事实上我试了一次并没有成功。查了下API中的解释。
setRawValue( Mixed value ) : Mixed
跃过验证直接设置DOM元素值。需要验证的设值方法可以查看setValu...
跃过验证直接设置DOM元素值。需要验证的设值方法可以查看setValue。Sets the underlying DOM field's value directly, bypassing validation. To set the value with validation see setValue.
如果我没有理解错的话这里应该是用于跳过验证赋值的,也就是说你本来有些因为验证不能通过的值可以通过这个函数来设置。(这里搞不懂为什么Ext官方会给这样一个函数,既然都是不能验证的那干嘛还要赋值)。
在使用firebug分析生成的页面的时候,发现真实的值是用一个隐藏的input来放置的。既然这样那我就用Ext.get()方法来试试,最终发现确实可