繁体   English   中英

如何向 HTML 文本区域添加换行符?

[英]How to add line breaks to an HTML textarea?

我正在用 JavaScript 编辑<textarea> 问题是当我在其中换行时,它们不会显示。 我怎样才能做到这一点?

我正在获取编写函数的值,但它不会换行。

问题来自这样一个事实,即换行符 ( \\n\\r ?) 与 HTML <br/>标签不同

var text = document.forms[0].txt.value;
text = text.replace(/\r?\n/g, '<br />');

更新

由于许多评论和我自己的经验告诉我,这个<br>解决方案没有按预期工作,这里是一个示例,说明如何使用 '\\r\\n' 将新行附加到textarea

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 没有解析。

你需要使用\\nlinebreakstextarea

如果要在自己的页面中显示文本,可以使用<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>

我有一个 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 />');

希望对你有帮助。 :-)

新行只是浏览器的空白,不会被视为与普通空格 (" ") 有任何不同。 要获得新行,您必须插入<BR />元素。

解决该问题的另一种尝试:将文本输入到 textarea 中,然后在按钮后面添加一些 JavaScript 以将不可见字符转换为可读的内容并将结果转储到DIV 这会告诉你你的浏览器想要什么。

如果您只需要使用换行符将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>

如何在 HTML 中将换行符显式显示为“\n”<textarea> &lt;i&gt;tag?&lt;/div&gt;&lt;/i&gt;&lt;b&gt;标签?&lt;/div&gt;&lt;/b&gt;</textarea><div id="text_translate"><p> 我正在编写一个简单的 web 应用程序,它将纯文本转换为 python 代码。</p><p> 示例:这是我的纯文本 ----&gt; print("这是我的纯文本")</p><p> 纯文本存储在常规文本区域中。 output 文本存储在禁用的文本区域中。</p><p> 问题:HTML 自动解析 \n,我还没有找到将 \n 保存在 output 文本区域内的好方法。 这是一个问题,因为复制 output 文本区域内的内容无法正常工作。</p><p> 这是我正在尝试做的事情:</p><p> 输入:Foo Bar</p><p> Output:打印(“Foo\nBar”)</p><hr><p> 源代码: </p><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-js lang-js prettyprint-override"> function set(el, text) { while (el.firstChild) el.removeChild(el.firstChild); el.appendChild(document.createTextNode(text)) } /* setupUpdater will be called once, on page load. */ function setupUpdater() { var input = document.getElementsByTagName('textarea')[0], output = document.getElementsByTagName('textarea')[1], timeout = null; function handleChange() { //string.replace(/[\n]/g, '\n') var inputText = input.value; set(output, "print(\"" + inputText + "\")"); ("\n"); } /* eventHandler is called on keyboard and mouse events. If there is a pending timeout, it cancels it. It sets a timeout to call handleChange in 0ms. */ function eventHandler() { if (timeout) clearTimeout(timeout); timeout = setTimeout(handleChange, 0); } input.onkeydown = input.onkeyup = input.onclick = eventHandler; } setupUpdater(); document.getElementsByTagName('textarea')[0].focus();</pre><pre class="snippet-code-html lang-html prettyprint-override"> &lt;div class="grid-container"&gt; &lt;textarea name="plainText" id="plainText" cols="40" rows="40" placeholder="Enter your plain text here"&gt;&lt;/textarea&gt; &lt;textarea name="plainText" id="plainText" cols="40" rows="40" readonly&gt;print("")&lt;/textarea&gt; &lt;/div&gt;</pre></div></div><p></p><p> 我很乐意澄清我没有解释的任何事情,但我确实希望这个问题和我想要达到的目标是明确的。</p></div>

[英]How can I explicitly show line breaks as “\n” inside a HTML <textarea> tag?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何使用更多行的文本向textarea添加换行符 如何使用Java脚本在HTML中添加换行符 如何在混乱的html代码中添加换行符 jQuery在html()上添加换行符 TinyMCE如何动态获取文本区域中的换行符 如何获取带有换行符的textarea文本? 限制文本区域中的换行符 如何在 HTML 中将换行符显式显示为“\n”<textarea> &lt;i&gt;tag?&lt;/div&gt;&lt;/i&gt;&lt;b&gt;标签?&lt;/div&gt;&lt;/b&gt;</textarea><div id="text_translate"><p> 我正在编写一个简单的 web 应用程序,它将纯文本转换为 python 代码。</p><p> 示例:这是我的纯文本 ----&gt; print("这是我的纯文本")</p><p> 纯文本存储在常规文本区域中。 output 文本存储在禁用的文本区域中。</p><p> 问题:HTML 自动解析 \n,我还没有找到将 \n 保存在 output 文本区域内的好方法。 这是一个问题,因为复制 output 文本区域内的内容无法正常工作。</p><p> 这是我正在尝试做的事情:</p><p> 输入:Foo Bar</p><p> Output:打印(“Foo\nBar”)</p><hr><p> 源代码: </p><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-js lang-js prettyprint-override"> function set(el, text) { while (el.firstChild) el.removeChild(el.firstChild); el.appendChild(document.createTextNode(text)) } /* setupUpdater will be called once, on page load. */ function setupUpdater() { var input = document.getElementsByTagName('textarea')[0], output = document.getElementsByTagName('textarea')[1], timeout = null; function handleChange() { //string.replace(/[\n]/g, '\n') var inputText = input.value; set(output, "print(\"" + inputText + "\")"); ("\n"); } /* eventHandler is called on keyboard and mouse events. If there is a pending timeout, it cancels it. It sets a timeout to call handleChange in 0ms. */ function eventHandler() { if (timeout) clearTimeout(timeout); timeout = setTimeout(handleChange, 0); } input.onkeydown = input.onkeyup = input.onclick = eventHandler; } setupUpdater(); document.getElementsByTagName('textarea')[0].focus();</pre><pre class="snippet-code-html lang-html prettyprint-override"> &lt;div class="grid-container"&gt; &lt;textarea name="plainText" id="plainText" cols="40" rows="40" placeholder="Enter your plain text here"&gt;&lt;/textarea&gt; &lt;textarea name="plainText" id="plainText" cols="40" rows="40" readonly&gt;print("")&lt;/textarea&gt; &lt;/div&gt;</pre></div></div><p></p><p> 我很乐意澄清我没有解释的任何事情,但我确实希望这个问题和我想要达到的目标是明确的。</p></div> 剥离HTML标签并考虑文本区域中的换行符 使用javascript提交表单时将换行符添加到textarea字段
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM