Estoy creando un programa con dos páginas: una para ingresar texto a través de un área de textarea en una base de datos como un form , y la otra para obtener dichos datos y mostrarlos en un área de textarea . Sin embargo, al enviar texto que tiene sangría (como producto de que el usuario presiona el botón Intro), la página para obtener y mostrar información se rompe, y sé por qué, pero no cómo solucionarlo.
Página para enviar el formulario:
<!--Form--> <div class="container"> <form action="/spaceData" method="POST"> <br> <textarea value="" id="textbox" name="usertext" maxlength="100" placeholder="Write your fortune:" onchange="handleChange(this)"></textarea> </br> </div> <div class="container"> <button type="submit" id="submit" onclick="return handleChange()">Contribute Wisdom</button> </div> </form> </div>La página para mostrar datos es un archivo ejs que recupera el valor de texto de un envío de la siguiente manera:
let text = "<%= text %>";Pero, para cadenas con sangría, la variable se rompe. Por ejemplo, digamos que un usuario ingresa la cadena:
hello world !El archivo ejs mostraría la variable como:
let text = "hello world !"; Esto hace que el programa se rompa. ¿Cómo permito que la variable de text detecte saltos de línea?
Pensé que tal vez podría iterar la cadena antes del envío y si se detecta una sangría, se puede reemplazar con \n , pero no estoy seguro de cómo implementar esto o si incluso solucionaría el problema.
Gracias por cualquier consejo.
esto se debe a que las líneas de ruptura html y js funcionan de manera diferente.
cualquier caso. el área de texto envía estas líneas de corte cuando las ingresa y, si desea habilitar estos saltos de línea en su interfaz, simplemente agregue este css en el área donde desea mostrar esta información de área de texto, por ejemplo: en una etiqueta "p"
en <estilo> o archivo .css:
p { white-space: pre-wrap; }o en el html:
<p style="white-space: pre-wrap"> {textarea} </p> textarea puede registrar todas estas líneas de ruptura. pero cuando lo envía a una base de datos, no hay formulario en js, puede ver esas líneas de corte. idk cómo explicarlo, pero están ocultando estos
líneas