textarea
jupp Kleingeist
- javascript
0 Stefan Muenz0 wahsaga0 jupp kleingeist0 Cheatah
Hallo,
in SelfHtml ist unter
javascript\objekte\anzeige\htmlelemente_textarea.htm
ein Beispiel beschrieben, in dem die Keyboardeingabe in einer
<textarea> parallel einem div-Elements zugewiesen wird.
Ich finde keinen Weg auch einen Zeilenumbruch mit zu übergeben.
Hat jemand einen Tip?
Vielen Dank und
mfG JK
Hallo JK,
in SelfHtml ist unter
javascript\objekte\anzeige\htmlelemente_textarea.htm
ein Beispiel beschrieben, in dem die Keyboardeingabe in einer
<textarea> parallel einem div-Elements zugewiesen wird.
Ich finde keinen Weg auch einen Zeilenumbruch mit zu übergeben.
Das Zeilenumbruchzeichen wird in den Textfluss des divs wie in HTML definiert als "white-space" uebernommen. Wenn du es in ein <br> umwandeln willst, bleibt dir wohl nichts anderes uebrig, als in JavaScript eine Tastatur-Ereignisueberwachung fuer das textarea-Feld zu programmieren. Die entsprechende Handler-Funktion kann dann, wenn das Zeichen mit dem Dezimalwert 13 (Return-Taste) eingegeben wird, als Output den String "<br>" liefern.
viele Gruesse
Stefan Muenz
hi,
Die entsprechende Handler-Funktion kann dann, wenn das Zeichen mit dem Dezimalwert 13 (Return-Taste) eingegeben wird, als Output den String "<br>" liefern.
ob das reicht?
dann müsste man ja auch einen zeilenumbruch im div erzeugen können, in dem man <, b, r und > eintippt - funtkioniert so einfach aber nicht.
http://de.selfhtml.org/javascript/objekte/node.htm#node_value sagt zu dieser eigenschaft:
"Speichert den Wert oder Inhalt eines Knotens. Bei Textknoten ist dies der Text, bei Attributknoten der zugewiesene Attributwert. Bei Elementknoten hat diese Eigenschaft den Wert null."
firstChild dieses divs, der nur text enthält, dürfte ein reiner textknoten sein - also kann man da auf diese weise auch nur text reinspreichern.
für ein <br> müsste also m.E. erst mal ein neuer knoten dieses typs erzeugt, und dann eingehangen werden.
gruß,
wahsaga
Hallo wahsaga,
klingt logisch.
Zu meinem Verständnis,
wenn die Vorbelegung
<div id="Text">text-a <br> text-b</div>
ist, wird
text-a (Zeilenumbruch)
text-b
dargestellt.
Mit
document.getElementById("Text").firstChild.nodeValue
=document.getElementById("Eingabe").value;
wird text-a u. text-b durch die Eingabe ersetzt.
Vorher war ein Zeilenumbruch enthalten.
Da sollte doch auch ein neuer hinein zu bekommen sein.
Gruß JK
hi,
wenn die Vorbelegung
<div id="Text">text-a <br> text-b</div>
ist, wird
text-a (Zeilenumbruch)
text-b
dargestellt.
das dürften jetzt drei knoten sein.
ein textknoten mit dem inhalt text-a,
ein eigener knoten für den zeilenumbruch,
und ein weitere textknoten mit dem inhalt text-b.
Mit
document.getElementById("Text").firstChild.nodeValue
=document.getElementById("Eingabe").value;
wird text-a u. text-b durch die Eingabe ersetzt.
Vorher war ein Zeilenumbruch enthalten.
Da sollte doch auch ein neuer hinein zu bekommen sein.
nein, du hast immer noch nur den ersten _text_knoten verändert.
gruß,
wahsaga
Hallo Stephan,
ev. habe ich es noch nicht verstanden.
Der String:
document.getElementById("Eingabe").value
enthält die Steuerzeichen "0A,0D"
Diese habe ich mit .replace entfernt und durch "<br>" ersetzt.
\n,\f, ... habe ich auch probiert. Es hilft nichts.
Das <br> wird als Text ausgegeben.
Gruß JK
Hi,
Das <br> wird als Text ausgegeben.
siehe wahsagas Antwort. Unter Berücksichtigung der Einschränkung, dass diese Eigenschaft *nicht obligatorisch ist*, sondern nur in verhältnismäßig wenigen Browsern existiert, könntest Du innerHTML einsetzen. Ansonsten bleiben Dir die beiden Wege des DOM-Knoten-Erzeugens und der Wahl eines günstigen white-space-Wertes.
Cheatah