如何向 HTML 文本区域添加换行符
我正在使用 JavaScript 编辑
我正在获取编写函数的值,但它不会给出换行符。
I’m editing a <textarea>
with JavaScript. The problem is that when I make line breaks in it, they won’t display. How can I do this?
I’m getting the value to write a function, but it won’t give line breaks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
我有一个 id 为 #infoartist 的文本区域,如下所示:
在 JavaScript 代码中,我将获取文本区域的值,并用
替换转义新行 (\n\r)
标签,如:所以如果你使用 jQuery(像我一样):
I have a textarea whose id is #infoartist, as follows:
In JavaScript code, I’ll get the value of the textarea and replace escaping a new line (\n\r) by the
<br />
tag, such as:So if you are using jQuery (like me):
对于浏览器来说,新行只是空白,不会被视为与普通空格(“”)有任何不同。 要获取新行,您必须插入
元素。解决该问题的另一种尝试:在文本区域中输入文本,然后在按钮后面添加一些 JavaScript,将不可见字符转换为可读字符,并将结果转储到
DIV
中。 这会告诉你你的浏览器想要什么。A new line is just whitespace to the browser and won't be treated any different to a normal space (" "). To get a new line, you must insert
<BR />
elements.Another attempt to solve the problem: Type the text into the textarea and then add some JavaScript behind a button to convert the invisible characters to something readable and dump the result to a
DIV
. That will tell you what your browser wants.如果您只需要将文本区域的值发送到服务器并换行,请使用 nl2br 。
If you just need to send the value of the textarea to the server with line breaks, use nl2br.
这是我为遇到同样的麻烦所做的事情。
当我将文本传递到 JSP 中的下一页时,我将其读为文本区域而不是读取类似的内容
,因此输出如您所愿。
对于其他属性,您可以按如下方式使用它。
Here is the thing I did for the same trouble I had.
When I'm passing the text to the next page in JSP, I’m reading it as a textarea instead of reading something like
so the output came as you wanted.
And for other properties, you can use it as below.
问题来自于换行符 (
\n\r
?) 与 HTML
标记不同:因为许多注释和我自己的经验告诉我,这个
解决方案没有按预期工作,下面是如何使用 '\ 将新行附加到textarea
的示例r\n':The problem comes from the fact that line breaks (
\n\r
?) are not the same as HTML<br/>
tags:Since many of the comments and my own experience have shown me that this
<br>
solution is not working as expected, here is an example of how to append a new line to atextarea
using '\r\n':如果您使用通用 JavaScript 并且需要将字符串分配给文本区域值,那么
document.getElementById("textareaid").value='texthere\\ntexttext'。
您需要替换
\n
或< br >
与\\\n
。否则,它会在所有浏览器中给出Uncaught SyntaxError: Unexpected token ILLEGAL。
If you use general JavaScript and you need to assign a string to a text area value, then
document.getElementById("textareaid").value='texthere\\ntexttext'.
You need to replace
\n
or< br >
with\\\n
.Otherwise, it gives Uncaught SyntaxError: Unexpected token ILLEGAL in all browsers.
您需要在
textarea
内使用\n
作为linebreaks
You need to use
\n
forlinebreaks
insidetextarea
我遇到了从服务器变量传递到 JavaScript 变量的换行符问题,然后 JavaScript 将它们写入文本区域(使用 KnockoutJS 值绑定)。
解决方案是双重转义新行:
在服务器端,因为只有单个转义字符,JavaScript 无法解析。
I had a problem with line breaks which were passed from a server variable to a JavaScript variable, and then JavaScript was writing them to a textarea (using KnockoutJS value bindings).
The solution was double escaping new lines:
on the server side, because with just single escape characters, JavaScript was not parsing.
如果您想在自己的页面内显示文本,可以使用
If you want to display text inside your own page, you can use the
<pre>
tag.