Extjs 4, wie kann xType verhindern: 'Combo', wenn man zusammenbricht, wenn bereits ausgewählter Artikel geklickt?

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

Frage

Ich habe ComboBox. Wenn ich auf Element von der erweiterten Liste klicke, klicke ich. ComboBox Wählen Sie diesen Element und kollabieren Sie zusammen. Wenn ich auf bereits ausgewähltes Element klicke, kollabiert es auch.

Gibt es eine Möglichkeit, "aufhören" ComboBox Kollabieren Wenn der Benutzer bereits ausgewähltes Element auswählt?

PS: Um kurz zu sein, will ich ComboBox sich verhalten wie TimeField aus http://dev.sencha.com/deploy/ext-4.0.0/examples/themes/index.html

AKTUALISIEREN

Ich brauche keine Lösungen, die nicht zumindest bei IE7 und IE8 funktionieren.

War es hilfreich?

Lösung

Wenn Sie dieses Verhalten wollen:

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

Andere Tipps

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;
        }
    }
});

Wenn es 3.3 ist, mit dem Sie es zu tun haben, scheint dies zu funktionieren:

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

Getestet auf Chrome und IE8. Es verhindert die onSelect Funktion wird aufgerufen, wenn der aktuelle Wert genau dem Wert übereinstimmt, den Sie festlegen möchten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top