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.

È stato utile?

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>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top