Extjs 4, wie kann xType verhindern: 'Combo', wenn man zusammenbricht, wenn bereits ausgewählter Artikel geklickt?
-
24-10-2019 - |
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.
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.