ExtJS 4, ¿Cómo evitar que Xtype: 'combo' colapse cuando ya se ha hecho clic en el elemento seleccionado?

StackOverflow https://stackoverflow.com/questions/5802795

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 ..

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top