Come aggiungere interruzioni di riga a una textarea HTML?
-
21-08-2019 - |
Domanda
sto modificando un <textarea>
con JavaScript. Il problema è che quando faccio interruzioni di riga in esso, che non verranno visualizzati. Come posso fare questo?
Mi sto il valore di scrivere una funzione, ma non darò interruzioni di riga.
Soluzione
problema deriva dal fatto che le interruzioni di linea (\n\r
?), Non sono gli stessi di HTML <br/>
tag
var text = document.forms[0].txt.value;
text = text.replace(/\r?\n/g, '<br />');
Altri suggerimenti
se si utilizza lo script Java e generale è necessario assegnare stringa di testo valore dell'area poi
document.getElementById("textareaid").value='texthere\\\ntexttext'.
è necessario sostituire \n
o < br >
a \\\n
altrimenti dà Uncaught SyntaxError: Unexpected token ILLEGAL
su tutti i browser.
È necessario utilizzare \n
per linebreaks
all'interno textarea
Forse qualcuno trovato utile:
Ho avuto problemi con interruzioni di riga che sono state trasmesse dalla variabile del server a JavaScript variabile e quindi javascript li scriveva a textarea (utilizzando le associazioni di valore knockout.js).
la soluzione è stata doppia fuga nuove linee:
orginal.Replace("\r\n", "\\r\\n")
sul lato server, perché con soli caratteri di escape singoli javascript non è stata l'analisi.
Una nuova linea è solo spazio bianco per il browser e non saranno trattati qualsiasi diverso da uno spazio normale (" "). Per ottenere una nuova linea, è necessario inserire <BR />
elementi.
Un altro tentativo di risolvere il problema: Digitare il testo nella textarea e poi aggiungere un po JavaScript dietro un pulsante per convertire i caratteri invisibili a qualcosa di leggibile e scaricare il risultato a un DIV
. Che vi dirà che cosa il browser vuole.
Se si desidera visualizzare il testo all'interno della vostra pagina, è possibile utilizzare il <pre>
tag.
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>
Ho un textarea con id è #infoartist seguire:
<textarea id="infoartist" ng-show="dForm" style="width: 100%;" placeholder="Tell your contacts and collectors about yourself."></textarea>
Nel codice javascript, vado a prendere valore del textarea e sostituire la fuga nuova linea (\ n \ r) da <br />
tag, come ad esempio:
var text = document.getElementById("infoartist").value;
text = text.replace(/\r?\n/g, '<br />');
Quindi, se si sta utilizzando jQuery (come me):
var text = $("#infoartist").val();
text = text.replace(/\r?\n/g, '<br />');
Spero che ti ha aiutato. : -)
Se avete solo bisogno di inviare il valore della testarea al server con le interruzioni di riga utilizzare nl2br
qui è la cosa che ho fatto per lo stesso problema che ho avuto.
quando sto passando il testo alla pagina successiva in JSP, lo sto leggendo come una textarea invece di leggere qualcosa di simile
così l'output è venuto come si voleva. e per altre proprietà, è possibile utilizzare come di seguito.
<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>