2016-03-25 6 views
0

Standardmäßig kann eine tagfield nicht geschlossen werden, wenn Sie auf die Feldbezeichnung klicken. Wenn also ein Formular mit vielen Feldern gefüllt ist, ist es schwierig, eine Stelle zu finden, an der Sie klicken können, ohne eine zu erweitern.Wie schließt man das erweiterte Tagfield, wenn man in ExtJS6 auf das Label klickt?

Ich möchte das Verhalten triggerOnClick beibehalten, wenn es erweitert wird, wenn Sie auf das Feld selbst klicken. Gibt es eine Möglichkeit, das Label in das erweiterte Feld einzublenden (etwas, das besser ist, als ein labelloses Feld in einen Container mit einem Label zu wickeln).

{ 
    xtype: 'tagfield' 
    fieldLabel: 'Tags', 
    queryMode: 'local', 
    triggerAction: 'all', 
    forceSelection: true, 
    editable: true, 
    anyMatch: true, 
    valueField: 'id', 
    displayField: 'name', 
    triggerOnClick: true, 
    store: store, 
} 

https://fiddle.sencha.com/#fiddle/17or

+0

Sie können das "for" -Attribut von der Beschriftung entfernen, es verwendet nur das normale Browserverhalten, um den Fokus zu verursachen. –

+0

Ok danke, ich habe 'Ext.form.field.Tag.prototype.labelableRenderTpl' neu definiert und 'for' von einem Label-Tag entfernt, es funktioniert, aber ich habe das Gefühl, dass ich etwas schmutzig gemacht habe, es hat auch den Nebeneffekt, dass ich keine Dropbox öffne wenn es geschlossen ist. Wenn jemand andere Vorschläge hat, bitte posten Sie diese. – serg

Antwort

0

fand ich eine Lösung, die das for-Attribut zu bearbeiten. Sie können den Wert mit

inputId: "myTagfieldIsNotSelectWhenIpressOnTheLabel" 

bearbeiten Dies ist ein Problem umgehen, wenn Kunden auf einem Etikett eines ExtJS Tagfield drücken und das Feld schließen sollte. Funktioniert in Chrome und Firefox.