Frage

Ich bin der Bearbeitung eines <textarea> mit JavaScript. Das Problem ist, dass, wenn ich Zeilenumbrüche in es machen, werden sie nicht angezeigt werden soll. Wie kann ich das tun?

Ich bin den Wert immer eine Funktion zu schreiben, aber es wird keine Zeilenumbrüche geben.

War es hilfreich?

Lösung

Problem kommt von der Tatsache, dass Zeilenumbrüche (\n\r?) Sind nicht das gleiche wie HTML <br/> Tags

var text = document.forms[0].txt.value;
text = text.replace(/\r?\n/g, '<br />');

Andere Tipps

Wenn Sie allgemeines Java-Script verwenden und Sie müssen Zeichenfolge zuweisen Bereich Wert auf Text dann

 document.getElementById("textareaid").value='texthere\\\ntexttext'.

Sie müssen \n oder < br > ersetzen \\\n

sonst gibt es Uncaught SyntaxError: Unexpected token ILLEGAL auf allen Browsern.

Sie müssen \n für linebreaks innerhalb textarea verwenden

Vielleicht hat jemand finden diese nützlich:

hatte ich Problem mit Zeilenumbrüchen, die von Servervariablen zu JavaScript-Variable übergeben wurden, und dann wurde Javascript um sie zu TextArea- Schreiben (knockout.js Wert Bindungen verwendet wird).

wurde die Lösung Doppel entweichende neue Zeilen:

orginal.Replace("\r\n", "\\r\\n")

auf der Server-Seite, denn mit nur einzelnen Escape-Zeichen Javascript nicht wurde das Parsen.

Eine neue Zeile ist für den Browser nur Leerzeichen und nicht anders zu einem normalen Raum behandelt werden (“„). Um eine neue Zeile zu erhalten, müssen Sie <BR /> Elemente eingefügt werden.

Ein weiterer Versuch, das Problem zu lösen: den Text in das Textfeld ein, und dann einige JavaScript hinter einer Schaltfläche hinzufügen, die unsichtbaren Zeichen etwas lesbar und Dump das Ergebnis in einen DIV zu konvertieren. Das wird Ihnen sagen, was Ihr Browser will.

Wenn Sie Text in Ihrer eigenen Seite angezeigt werden sollen, können Sie den <pre> Tag verwenden.

document.querySelector('textarea').addEventListener('keyup', function() {
  document.querySelector('pre').innerText = this.value;
});
<textarea placeholder="type text here"></textarea>
<pre>
The
new line will
be respected
</pre>

Ich habe ein Textfeld mit der ID ist #infoartist wie folgt vor:

<textarea id="infoartist" ng-show="dForm" style="width: 100%;" placeholder="Tell your contacts and collectors about yourself."></textarea>

In Javascript-Code, ich werde Wert von TextArea- erhalten und ersetzen neue Linie zu entkommen (\ n \ r) von <br /> Tag, wie zum Beispiel:

var text = document.getElementById("infoartist").value;
text = text.replace(/\r?\n/g, '<br />');

Also, wenn Sie mit Jquery (wie ich):

var text = $("#infoartist").val();
text = text.replace(/\r?\n/g, '<br />');

Hoffe, dass es Ihnen geholfen. : -)

Wenn Sie brauchen nur den Wert der zu testarea-Server mit Zeilenumbrüchen senden verwenden nl2br

Hier ist das, was ich für das gleiche Problem habe ich hatte.

wenn ich den Text auf die nächste Seite in jsp bin vorbei, lese ich es als ein Textfeld statt etwas zu lesen, wie

so dass der Ausgang kam, wie man wollte. und für andere Eigenschaften, können Sie wie unten verwenden.

<textarea style="background-color: white; border: none; width:660px;font-family: Arial, Helvetica, sans-serif; font-size:1.0em; resize:none;" name="text" cols="75" rows="15" readonly="readonly" ><s:property value="%{text}"/></textarea>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top