ExtJS 4, ¿Cómo evitar que Xtype: 'combo' colapse cuando ya se ha hecho clic en el elemento seleccionado?
-
24-10-2019 - |
Pregunta
tengo ComboBox
. Cuando hago clic en el elemento de la lista expandida, ComboBox
Seleccione este artículo y colapse. Si hago clic en el elemento ya seleccionado, también colapsan.
¿Hay alguna forma de "parar"? ComboBox
colapsar cuando el usuario selecciona el elemento ya seleccionado?
PD: para ser cortos quiero ComboBox
comportarse como TimeField
de http://dev.sencha.com/deploy/ext-4.0.0/examples/themes/index.html
ACTUALIZAR
No necesito soluciones que no funcionen al menos en IE7 e IE8 ..
Solución
Si quieres ese comportamiento:
Ext.form.field.ComboBox.override({
onItemClick: Ext.emptyFn
});
Otros consejos
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;
}
}
});
Si es 3.3 que estás tratando, esto parece funcionar:
Ext.form.ComboBox.override({
onSelect : Ext.form.ComboBox.prototype.onSelect.createInterceptor(function(record) {
return this.getValue() !== record.data[this.valueField || this.displayField];
})
});
Probado en Chrome e IE8. Previene el onSelect
se llama a la función si el valor actual coincide exactamente con el valor que está tratando de establecer.