所以我有一个用图标填充的组合框列表,然后是一个小描述。最初当我选择一个项目时,它会将html作为原始值放入显示中。显然在显示器中有RAW html不是我想要的,所以我试图剥离图像标签并使用其他信息作为原始值。
这适用于显示,但显示和值不同。 (使用hiddenName字段等)并设置原始值不仅会更新显示字段,还会更新值。这是不可接受的。
在选择项目时,我解析出图像标记,并且只想更新显示字段。这里的问题是没有方法我只能更新显示字段并保留隐藏值。
如何在不弄乱隐藏值字段的情况下更新显示字段?
更新:我试过了......这么近但没有雪茄......
select: function() {
console.log(this.el.dom.value);
this.el.dom.value = 'test';
}
这将显示字段更新为'test'但是出于一些神奇的原因,当我点击组合框时,它将我的隐藏值设置为等于我的显示值....任何想法?
更新2:我还尝试通过将this.suspendEvents()放在select监听器的末尾来挂起组合框上的所有事件....仍然没有去。我不能为我的生活弄清楚为什么隐藏的值会在盒子模糊时改变。我试过用蓝色返回false并改变监听器事件..... preventDefault没有效果。
答案 0 :(得分:-1)
如果你看一下这个链接: http://docs.sencha.com/extjs/4.2.1/source/ComboBox.html#Ext-form-field-ComboBox
有功能**setValue: function(value, doSelect) {...**
它有一些地方::
的 me.setHiddenValue(processedValue); 强> 的
的 me.setRawValue(me.getDisplayValue()); 强> 的
这些线条正在做你提到过的神奇事物。
现在,为了解决您的问题,我想您可以这样做:
select: function() {
console.log(this.el.dom.value);
var actualValue = this.el.dom.value;
this.el.dom.value = 'test';
this.setRawValue(actualValue );
this.setHiddenValue(actualValue);
}
希望这有帮助,我还没有测试过代码!