我编辑用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所有的浏览器。

您需要使用\nlinebreakstextarea

也许有人觉得这有用:

我有这是从服务器变量传递给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>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top