Das xTextControl Objekt synchronisiert sich nicht automatisch mit dem zugehörigen Eingabefeld. Das bedeutet, dass die Properties nur gelesen werden dürfen! Ein direktes Ändern der Properties hat keinerlei Auswirkung auf das zugehörige Eingabefeld.
Um die Eigenschaften und den Text des Eingabefeldes zu ändern, müssen daher die entsprechenden Funktionen verwendet werden!
Beim Erzeugen des xTextControl Objektes wird das Objekt mit dem entsprechenden Eingabefeld synchronisiert. Die Properties enthalten also aktuelle Werte. Das xTextControl Objekt kann jederzeit mit der Funktion GetDataFromControl mit dem Eingabefeld synchronisiert werden.
Bei den meisten Funktionen des xTextControl kann man angeben, ob die Änderungen jetzt an das entsprechende Eingabefeld übertragen werden sollen oder nicht.
Verschiedene Browser machen einen Unterschied in der internen Codierung von Zeilenenden. Der IE zum Beispiel verwendet die Zeichenkombination '\r\n', Mozilla hingegen nur '\n'. Bei normiertem Text wird das Zeilenende immer mit dem einzigen Zeichen '\n' codiert.
Das xTextControl arbeitet mit normiertem Text. Das bedeutet, der Text ist auf allen Browsern gleich. Somit entsprechen alle Positionen des Eingabefeldes (Cursor, Selektion) 1:1 den entsprechenden Positionen im normierten Text des xTextControl - auf allen Browsern!
tf = xTextControl.TextControl;
Das Property TextControl (readonly) ermöglicht den direkten Zugriff auf das zugehörige Eingabefeld. Es handelt sich um jenes Eingabefeld, das beim Erzeugen des xTextControl als Parameter übergeben wurde.
TextControl kann ein einzeiliges Eingabefeld (input type=text) oder eine textarea sein.
var tc = new xTextControl( document.getElementById('myTextField') ); var textField = tc.TextControl; // -> textField == getElementById('myTextField')
p = xTextControl.SelStart
Das Property SelStart (readonly) gibt die Startposition der Selektion zurück. Wenn SelStart und SelEnd gleich sind, dann ist nichts selektiert und SelStart entspricht der Cursor Position im Eingabefeld.
SelStart ist immer im Bereich von 0 bis und mit Text.length und immer kleiner oder gleich SelEnd.
Verwende die Funktion SetSelectionRange um die Start- und Endposition der Selektion zu ändern.
var tc = new xTextControl( document.getElementById('myTextField') ); var cursor = tc.SelStart;
p = xTextControl.SelEnd
Das Property SelEnd (readonly) gibt die Endposition der Selektion zurück. Wenn SelStart und SelEnd gleich sind, dann ist nichts selektiert und SelEnd entspricht der Cursor Position im Eingabefeld.
SelEnd ist immer im Bereich von 0 bis und mit Text.length und immer grösser oder gleich SelStart.
Verwende die Funktion SetSelectionRange um die Start- und Endposition der Selektion zu ändern.
var tc = new xTextControl( document.getElementById('myTextField') ); var selCount = tc.SelEnd - tc.SelStart;
txt = xTextControl.SelText
Das Property SelText (readonly) gibt den selektierten Text zurück. Wenn nichts selektiert ist, wird ein leerer String zurück gegeben.
Verwende die Funktion ChangeSelectionText um den selektierten Text zu ersetzen oder Text an der aktuellen Cursorposition einzufügen.
var tc = new xTextControl( document.getElementById('myTextField') ); var text = tc.SelText;
txt = xTextControl.Text
Das Property Text (readonly) gibt den ganzen Text des Eingabefeldes zurück. Der Text ist normiert.
Verwende nur dieses Property (nicht das Property value des zugehörigen Eingabefeldes) um den Text des Eingabefeldes abzufragen.
Verwende nur die Funktion SetText um den Text des Eingabefeldes zu ersetzen!
Falls der Anwender zwischen den Funktionsaufrufen die Möglichkeit hat, den Text des Eingabefeldes zu verändern, muss das xTextControl eventuell mit der Funktion GetDataFromControl auf den neuesten Stand gebracht werden.
var tc = new xTextControl( document.getElementById('myTextField') ); var text = tc.Text;
if (xTextControl.Enabled) { ... }
Das Property Enabled (readonly) ist true wenn der aktuelle Browser das Steuern von Eingabefeldern per xTextControl unterstützt.
In der Regel kann man dieses Property einfach ignorieren. Sollte der Browser das xTextControl nicht unterstützen, wirken sich die Funktionen nicht oder nicht korrekt aus, aber es passiert weiter nichts. Verwende dieses Property, falls du den Anwender darauf hinweisen willst, dass die Editierfunktionen eines Eingabefeldes nicht funktionieren.
var tc = new xTextControl( document.getElementById('myTextField') ); if (!tc.Enabled) { alert( 'Edit-Funktionen funktionieren auf ihrem Browser nicht!' ); }