Pregunta

Estoy editando un <textarea> con JavaScript. El problema es que cuando hago saltos de línea en el mismo, no se mostrarán. ¿Cómo puedo hacer esto?

Me estoy poniendo el valor a escribir una función, pero no va a dar saltos de línea.

¿Fue útil?

Solución

El problema viene del hecho de que los saltos de línea (\n\r?) No son las mismas que las etiquetas HTML <br/>

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

Otros consejos

si se utiliza la escritura en general Java y necesita asignar cadena de texto valor del área después

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

es necesario sustituir o \n < br > a \\\n

de lo contrario se da Uncaught SyntaxError: Unexpected token ILLEGAL en todos los navegadores.

Es necesario utilizar \n para linebreaks dentro textarea

Tal vez a alguien a encontrar esto útil:

he tenido un problema con saltos de línea que se transmite de variable de servidor a variable javascript, javascript y luego les estaba escribiendo a área de texto (usando enlaces de valor knockout.js).

la solución se escapa doble nuevas líneas:

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

en el lado del servidor, ya que con sólo caracteres individuales de escape JavaScript no fue el análisis.

Una nueva línea es sólo un espacio en blanco en el navegador y no será tratado de forma diferente a un espacio normal (" "). Para obtener una nueva línea, debe insertar <BR /> elementos.

Otro intento de resolver el problema: Escriba el texto en el área de texto y luego añadir un poco de JavaScript detrás de un botón para convertir los caracteres invisibles a algo legible y volcar el resultado a un DIV. Que le dirá lo que desea su navegador.

Si desea mostrar texto dentro de su propia página, puede utilizar la etiqueta <pre>.

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>

Tengo un área de texto con el identificador es #infoartist sigue:

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

En el código Javascript, voy a conseguir valor del área de texto y reemplazar escape nueva línea (\ n \ r) por <br /> etiqueta, como por ejemplo:

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

Así que si usted está usando jQuery (como yo):

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

Espero que te ayudó. : -)

Si sólo tiene que enviar el valor de la testarea al servidor con saltos de línea usar nl2br

aquí es lo que hice para el mismo problema que tenía.

cuando estoy pasando el texto a la siguiente página de JSP, lo estoy leyendo como un área de texto en lugar de leer algo así como

lo que la salida fue como lo hubiera querido. y otras propiedades, puede utilizar la siguiente manera.

<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>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top