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>