2017-06-29 3 views
0

zu beschränken habe ich eine ExtJS6 TextArea- die Variable readonlyExtJS 6 TextArea- schreibgeschützt: wie Maus-Cursor innerhalb TextArea-

bind:{ 
readOnly : '{someCondition}' 
} 

Wenn das Textfeld readonly hat binden: Mauszeiger auf Klick auf das Textfeld innerhalb wahr ist, dann ist Textbereich. Ich möchte den Mauszeiger einschränken, wenn der Textbereich readOnly ist.

Die Verwendung des Attributs "disabled" funktioniert einwandfrei und erlaubt keinen Mauszeiger innerhalb des Textbereichs, aber die vertikale Bildlaufleiste mit Textbereich wird nicht angezeigt. Daher kann diese Eigenschaft nicht verwendet werden.

Können Sie bitte eine Lösung vorschlagen.

+0

für readOnly TextArea der Mauszeiger sollte nicht in Textarea angezeigt werden. – sorab

+0

Mit readonly meinen Sie, dass Sie nicht bearbeiten können, aber der Cursor ist im Textfeld zu sehen? Wenn möglich, können Sie ein Demo/Bild zeigen? – Tejas

+0

Wenn das Feld schreibgeschützt ist, möchte ich den Mauszeiger nicht innerhalb des Textfelds. Ich habe this.blur() benutzt, aber das hilft nicht. – sorab

Antwort

0

Sie müssen angegeben editable Config

bind:{ 
    readOnly : '{someCondition}' 
    editable : false({somecondition}) 
} 

fiddle.

+0

editierbar hat auch nicht funktioniert. Der Mauszeiger befindet sich immer noch im Text. Ich habe this.blur() benutzt, aber das funktioniert nicht. – sorab

+0

es funktioniert bitte beziehen Sie sich auf Geige. https://fiddle.sencha.com/#view/editor&fiddle/22c0 –

+0

Es wird keine Bildlaufleiste angezeigt, wenn Daten vorhanden sind. der Code ist { xtype: 'textareafield', maxLength: 100, wachsen: true, growMin: 10, growMax: 90, , bind: { Wert: '(json Daten)', readonly : '{eine Bedingung}' }, allowBlank: true} – sorab

0

Die Geige in diesem answer von @Ronak Patel scheint zu funktionieren. Wenn Sie auch verhindern möchten, dass der Benutzer die Maus zum Auswählen des Textes in der Textfläche verwendet, können Sie user-select auf none setzen. Obwohl dies keine Standardmethode ist, können Sie den Cursor auch ändern, um dem Benutzer anzuzeigen, dass er den Text nicht auswählen kann. Diese Veränderungen können im writeableChange Ereignis-Listener gemacht werden:

writeableChange: function() { 
         if (this.readOnly) { 
          this.inputEl.dom.style.userSelect = 'none'; 
          this.inputEl.dom.style.cursor = 'not-allowed'; 
         } else { 
          this.inputEl.dom.style.userSelect = 'inherit'; 
          this.inputEl.dom.style.cursor = 'inherit'; 
         } 
        } 

aktualisiert Geige Siehe here (das Kontrollkästchen verwenden, um die Textarea readonly oder nicht zu machen).