HTML textarea到javascript并保持换行符

Posted

技术标签:

【中文标题】HTML textarea到javascript并保持换行符【英文标题】:HTML textarea to javascript and keep line break 【发布时间】:2019-03-30 04:18:58 【问题描述】:

我正在尝试通过 javascript 传递 html <textarea>,并希望保留换行符。前我写的时候:

Line a
Line b

结果如下:

Line a Line b

我的代码:

function textwrite()
  thetext = document.getElementById("text_change").value;    
  document.getElementById("demo").innerHTML = thetext;
<textarea id='text_change' oninput='textwrite()'></textarea>
    
<p id="demo"></p>

而且我不想使用&lt;pre&gt; 标签。

【问题讨论】:

JavaScript: How to add line breaks to an HTML textarea?的可能重复 Preserve line breaks in textarea的可能重复 【参考方案1】:

使用white-space:

white-space CSS 属性设置如何处理元素内的空白。

pre-wrap在哪里

保留空白序列。在换行符、&lt;br&gt; 处换行,并根据需要填充行框。

function textwrite()
  thetext = document.getElementById("text_change").value;    
  document.getElementById("demo").innerHTML = thetext;
#demo  white-space: pre-wrap; 
<textarea id='text_change' oninput='textwrite()'></textarea>
    
<p id="demo"></p>

【讨论】:

想要添加一些 cmets 来解释为什么这样可以解决问题? @RyanWilson,用一些文档更新了答案......希望现在更有意义......谢谢 谢谢,这样好多了。来自我的 +1。 这是正确的答案,字符串会自己保存那些换行符,但是你必须指定CSS来显示它,谢谢!【参考方案2】:

在java脚本中用&lt;/br&gt;替换\n,\r,\n\r

var myLineBreak = thetext.replace(/\r\n|\r|\n/g,"</br>");

function textwrite()
    	thetext = document.getElementById("text_change").value;  
      var myLineBreak = thetext.replace(/\r\n|\r|\n/g,"</br>");

    	document.getElementById("demo").innerHTML = myLineBreak;
    
<textarea id='text_change' oninput='textwrite()'></textarea>
    
    <p id="demo"></p>

【讨论】:

【参考方案3】:

为此,首先将 textBox 的 multiline 属性设置为 true,然后在每行的末尾添加:"\r\n"

【讨论】:

以上是关于HTML textarea到javascript并保持换行符的主要内容,如果未能解决你的问题,请参考以下文章

HTML/Javascript/jquery 函数按钮在 TextArea 中的每一行末尾放置逗号

javascript/html/php 捕获 textarea 中的换行符

Javascript选择文本并格式化textarea

JavaScript - HTML - Textarea 元素的问题

JavaScript 在Html TextArea中获取/设置光标

(HTML代码)请问textarea,可以使用使用Value显示内容的属性吗?