ExtJs 4, Comment éviter xtype: « combo » effondrement quand déjà l'élément sélectionné cliqué?

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

Question

Je ComboBox. Lorsque je clique sur le point de la liste élargie, ComboBox sélectionnez cet élément et l'effondrement. Si je clique sur le point déjà sélectionné, il s'effondrer aussi.

Est-il un moyen de "stop" ComboBox lorsque l'effondrement sélectionnez l'élément déjà sélectionné utilisateur?

PS: pour être bref, je veux ComboBox à se comporter comme TimeField http://dev.sencha.com/deploy/ext-4.0.0/examples/themes/index.html

UPDATE

Je ne solutions pas besoin que le travail ne marche pas au moins à IE7 et IE8 ..

Était-ce utile?

La solution

Si vous voulez que le comportement:

Ext.form.field.ComboBox.override({
    onItemClick: Ext.emptyFn
});

Autres conseils

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 c'est 3.3 que vous avez affaire, cela semble fonctionner:

Ext.form.ComboBox.override({
  onSelect : Ext.form.ComboBox.prototype.onSelect.createInterceptor(function(record) {
    return this.getValue() !== record.data[this.valueField || this.displayField];
  })
});

Testé sur Chrome et IE8. Il empêche la fonction onSelect appelée si la valeur actuelle correspond exactement à la valeur que vous essayez d'ensemble.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top