Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么当我试图在html的文本区域中显示文本时,它会在一行中显示所有内容?_Javascript_Html - Fatal编程技术网

Javascript 为什么当我试图在html的文本区域中显示文本时,它会在一行中显示所有内容?

Javascript 为什么当我试图在html的文本区域中显示文本时,它会在一行中显示所有内容?,javascript,html,Javascript,Html,我有以下代码: <body> <form> <textarea id="textfield"></textarea> <input type="button" onclick="func1()" value="Post"> </form> <p id="para"></p> </body> 如何从textarea中提取文本并在屏幕上正

我有以下代码:

 <body> 
 <form>    
     <textarea id="textfield"></textarea> 
     <input type="button" onclick="func1()" value="Post"> 
   </form>  
   <p id="para"></p>
</body>
如何从textarea中提取文本并在屏幕上正常显示(不是一行)。
如何为不知道如何使用标记的用户修改textarea?当按下一个简单的回车键时,文本区域中的文本不是html。它只是文本,包含常规换行符
“\n”
。要显示它们,您需要将文本括在
pre
标记中,或者将
“\n”
替换为


我会选择后者,因为如果文本中没有中断,那么
pre
根本不会中断,因此您将有一条长行和一个滚动条。

首先,对于文本区域,您应该使用
,而不是
内部HTML
。像这样

document.getElementById("para").innerHTML=document.getElementById("textfield").value;
现在,关于单线问题。在textarea中,新行之间用\n分隔。在您的div中\n不工作。因此,您必须将它们替换为

标记。所以重写你的代码片段

document.getElementById("para").innerHTML=document.getElementById("textfield").value.replace(/\r\n|\r|\n/g,"<br />");
document.getElementById(“para”).innerHTML=document.getElementById(“textfield”).value.replace(/\r\n |\r |\n/g,“
”);
不接受HTML并对其进行解释。我认为,如果你想让用户能够在不知道标签名称的情况下修改文本,你需要使用标签来实现他们的实际功能,那么你需要的是一个答案。看看这些:你不明白我的问题,textarea正在忽略我的html标记它显示html标记,就好像它是一个简单的textHTML标记不在文本区域中呈现一样。使用
\n
。如果要添加粗体文本,该怎么办?或者,如果我想使用一个简单的返回键断开一行,例如,当我到达自动插入“\n”的行的末尾时,请查看堆栈溢出注释文本区域,而无需执行任何操作。如果你想添加更多的标记,你可能想研究一个富文本编辑器或所见即所得编辑器。Textarea用于纯文本,用户必须自己插入标记。如果只是换行,那么你可以做一个简单的替换。非常感谢你的回答,也可以做相反的事情吗?从段落到文本区域删除

并替换为“\n”
document.getElementById("para").innerHTML=document.getElementById("textfield").value.replace(/\r\n|\r|\n/g,"<br />");