我有ComboBox
。当我点击展开列表中的项目时,ComboBox
选择此项并折叠。如果我点击已经选中的项目,它也会折叠。
当用户选择已选择的项目时,有没有办法“停止” ComboBox
折叠?
PS:要简短,我希望ComboBox
的行为与http://dev.sencha.com/deploy/ext-4.0.0/examples/themes/index.html中的TimeField
相似
更新
我不需要至少在IE7和IE8上不起作用的解决方案..
答案 0 :(得分:4)
var cb = new Ext.form.ComboBox({
// here is your local store
mode: 'local',
store: new Ext.data.SimpleStore({
fields: ['id', 'label'],
data: [
['1', 'One'],
['2', 'Two']
]
}),
listeners: {
'beforeselect': function (combo, record, index) {
// prevent collapsing if the same value is selected
if (record.data.label == combo.getRawValue()) return false;
}
}
});
答案 1 :(得分:3)
如果你想要这种行为:
Ext.form.field.ComboBox.override({
onItemClick: Ext.emptyFn
});
答案 2 :(得分:3)
如果你正在处理3.3,这似乎有效:
Ext.form.ComboBox.override({
onSelect : Ext.form.ComboBox.prototype.onSelect.createInterceptor(function(record) {
return this.getValue() !== record.data[this.valueField || this.displayField];
})
});
在Chrome和IE8上测试过。如果当前值与您尝试设置的值完全匹配,则会阻止调用onSelect
函数。