1

我有以下代码:

 <body> 
 <form>    
     <textarea id="textfield"></textarea> 
     <input type="button" onclick="func1()" value="Post"> 
   </form>  
   <p id="para"></p>
</body>

当我输入 textarea 时,所有特殊标签<a>,<br>等都被忽略,当我在其中显示它们时<p>,我输入的所有内容也显示在一行上,我按下 return 或 use 甚至都没有关系<br>,textarea 似乎正在使用 html 标签和把它们变成一个简单的文本。

这是我用来在 html 中显示文本区域的函数:

function func1()
{            
      document.getElementById("para").innerHTML=document.getElementById("textfield").innerHTML;
}

如何从 textarea 获取文本并正常显示在屏幕上(而不是一行)。如何为不知道如何使用标签的用户修改 textarea?当按下一个简单的回车键时应该被翻译成<br

4

3 回答 3

2

首先,对于 textareas 你应该使用value而不是innerHTML. 像这样...

document.getElementById("para").innerHTML=document.getElementById("textfield").value;

现在,对于单行问题。在 textarea 中,新行由 \n 分隔。在您的 div 中 \n 不起作用。所以你必须用<br>标签替换它们。所以重写你的代码片段......

document.getElementById("para").innerHTML=document.getElementById("textfield").value.replace(/\r\n|\r|\n/g,"<br />");
于 2013-07-04T14:01:22.383 回答
1

textarea 中的文本不是 html。它只是文本,包含常规换行符"\n"。要显示它们,您要么需要将文本包含在pre标签中,要么将其替换"\n"<br>.

我会做后者,因为pre如果文本没有中断,则根本不会中断,因此您将有一条长线和一个滚动条。

于 2013-07-04T14:00:06.347 回答
0

<textarea>不接受 HTML 并对其进行解释。如果您希望您的用户能够在不知道tag names

于 2013-07-04T14:01:52.867 回答