[removed] How to add line breaks to an HTML textar

2019-01-01 12:51发布

问题:

I\'m editing a textarea with JavaScript. The problem is that when I make line breaks in it, they won\'t display. How can I do this?

I\'m getting the value to write a function, but it won\'t give line breaks.

回答1:

Problem comes from the fact that line breaks (\\n\\r?) are not the same as HTML <br/> tags

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


回答2:

if you use general java script and you need to assign string to text area value then

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

you need to replace \\n or < br > to \\\\\\n

otherwise it gives Uncaught SyntaxError: Unexpected token ILLEGAL on all browsers.



回答3:

Maybe someone find this useful:

I had problem with line breaks which were passed from server variable to javascript variable, and then javascript was writing them to textarea (using knockout.js value bindings).

the solution was double escaping new lines:

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

on the server side, because with just single escape chars javascript was not parsing.



回答4:

You need to use \\n for linebreaks inside textarea



回答5:

A new line is just whitespace to the browser and won\'t be treated any different to a normal space (\" \"). To get a new line, you must insert <BR /> elements.

Another attempt to solve the problem: Type the text into the textarea and then add some JavaScript behind a button to convert the invisible characters to something readable and dump the result to a DIV. That will tell you what your browser wants.



回答6:

I have a textarea with id is #infoartist follow:

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

In javascript code, i\'ll get value of textarea and replace escaping new line (\\n\\r) by <br /> tag, such as:

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

So if you are using jquery (like me):

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

Hope it helped you. :-)



回答7:

If you want to display text inside your own page, you can use the <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>



回答8:

If you just need to send the value of the testarea to server with line breaks use nl2br



回答9:

here is the thing i did for the same trouble i had.

when I\'m passing the text to the next page in jsp, i\'m reading it as a textarea instead of reading something like

so the output came as you wanted. and for other properties, you can use as below.

<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>