JavaScript:如何将换行符添加到HTML textarea?

我正在用JavaScript编辑一个textarea。 问题是,当我换行时,它们不会显示。 我该怎么做?

我得到的价值来写一个函数,但它不会换行。

问题来自于换行符(\ n \ r?)与HTML标记不一样的事实

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

如果你使用通用的java脚本,那么你需要将string赋值给文本区域值

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

您需要将\n< br >replace为\\\n

否则会给所有浏览器上的Uncaught SyntaxError: Unexpected token ILLEGAL

也许有人觉得这很有用:

我有从服务器variables传递给JavaScriptvariables的换行符的问题,然后javascript写入他们到textarea(使用knockout.js值绑定)。

解决scheme是双线逃脱新线:

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

在服务器端,因为只有单一的转义字符javascript是不parsing。

你需要在textarea中使用\ n换行符

新行只是浏览器的空白,不会被视为与普通空间不同(“”)。 为了得到新的一行,你必须插入<BR />元素。

解决此问题的另一个尝试:将文本input到textarea中,然后在button后面添加一些JavaScript,将不可见字符转换为可读的内容并将结果转储到DIV 。 这会告诉你你的浏览器需要什么。

我有一个id为#infoartist的textarea如下:

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

在JavaScript代码中,我将得到textarea的值,并用<br />标记replace转义的新行(\ n \ r),例如:

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

所以,如果你使用jQuery(像我):

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

希望它帮助你。 🙂

我有一个案例,我只是想用两句话预先填充一个textarea,一个在新的一行。 对我有效的是:
textarea
::code tag goes here:: print "Sentence one!\nSentence two";
/textarea

如果您只需要将testarea的值通过换行符发送到服务器,请使用nl2br

这是我为了同样的麻烦而做的事情。

当我将文本传递给jsp中的下一页时,我正在阅读它作为textarea而不是阅读类似

所以输出就像你想要的一样。 和其他属性,你可以使用如下。

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