我正在<textarea>
用 JavaScript编辑一个。问题是当我在其中换行时,它们不会显示。我怎样才能做到这一点?
我正在获取编写函数的值,但它不会换行。
我正在<textarea>
用 JavaScript编辑一个。问题是当我在其中换行时,它们不会显示。我怎样才能做到这一点?
我正在获取编写函数的值,但它不会换行。
问题来自这样一个事实,即换行符 ( \n\r
?) 与 HTML<br/>
标签不同
var text = document.forms[0].txt.value;
text = text.replace(/\r?\n/g, '<br />');
更新
由于许多评论和我自己的经验告诉我这个<br>
解决方案没有按预期工作,这里是一个如何将新行附加到textarea
使用 '\r\n'的示例
function log(text) {
var txtArea ;
txtArea = document.getElementById("txtDebug") ;
txtArea.value += text + '\r\n';
}
我决定对此进行编辑,而不是作为一个新问题,因为这是一个太受欢迎的答案,不可能是错误或不完整的。
如果您使用通用 java 脚本并且需要将字符串分配给文本区域值,则
document.getElementById("textareaid").value='texthere\\\ntexttext'.
您需要更换\n
或< br >
以\\\n
否则它会Uncaught SyntaxError: Unexpected token ILLEGAL
在所有浏览器上显示。
也许有人觉得这很有用:
我遇到了从服务器变量传递到 javascript 变量的换行符问题,然后 javascript 将它们写入 textarea(使用knockout.js 值绑定)。
解决方案是双重转义新行:
orginal.Replace("\r\n", "\\r\\n")
在服务器端,因为只有单个转义字符 javascript 没有解析。
您需要\n
用于linebreaks
内部textarea
如果你想在你自己的页面中显示文本,你可以使用<pre>
标签。
document.querySelector('textarea').addEventListener('keyup', function() {
document.querySelector('pre').innerText = this.value;
});
<textarea placeholder="type text here"></textarea>
<pre style="font-family: inherits">
The
new lines will
be respected
and spaces too
</pre>