如何换行添加到HTML textarea的?
-
21-08-2019 - |
题
我编辑用JavaScript一个<textarea>
。问题是,当我在其中进行断行,他们将不会显示。我怎样才能做到这一点?
我得到的值编写一个函数,但它不会给换行。
解决方案
问题来自于事实,即换行符(\n\r
?)是不一样的HTML <br/>
标签
var text = document.forms[0].txt.value;
text = text.replace(/\r?\n/g, '<br />');
其他提示
如果你使用普通的Java脚本,你需要分配字符串文本区域值,那么
document.getElementById("textareaid").value='texthere\\\ntexttext'.
需要更换\n
或< br >
到\\\n
,否则它给Uncaught SyntaxError: Unexpected token ILLEGAL
所有的浏览器。
您需要使用\n
为linebreaks
内textarea
也许有人觉得这有用:
我有这是从服务器变量传递给JavaScript变量与换行问题,然后JavaScript是其写入文本区域(使用knockout.js值绑定)。
将溶液双逸出新行:
orginal.Replace("\r\n", "\\r\\n")
在服务器端,由于与JavaScript未解析只是单逃逸字符。
一个新行仅仅是空白浏览器和将不被视为任何不同到正常空格(”“)。为了得到一个新的生产线,必须插入<BR />
元素。
另一种尝试解决问题:键入文本到textarea的,然后添加一些JavaScript一个按钮后面的不可见的字符转换为可读的格式,并转储结果到DIV
。这会告诉你,你的浏览器所需要的。
如果你想里面自己的网页显示的文字,你可以使用<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>
我有ID的文本区域是的 #infoartist 强>遵循:
<textarea id="infoartist" ng-show="dForm" style="width: 100%;" placeholder="Tell your contacts and collectors about yourself."></textarea>
在JavaScript代码,我会得到的textarea的值和替换转义通过<br />
标签新行(\ 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 />');
希望它可以帮助你。 : - )
如果你只需要到testarea的值与换行符发送给服务器使用 nl2br
下面是我做了同样的问题,我有事情。
当我传递文本到下一个页面在JSP中,我读它作为一个文本,而不是读像
所以输出之际,你想要的。 和其他属性,可以如下使用。
<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>