我正在创建一个用户可以登录并在这样的表单字段中写入或粘贴文本的站点

<textarea name="descr" id="descr" class="textformfront"  rows="24" cols="50" required onFocus="cleari();"></textarea>


文本保存在数据库中(PostgreSQL 9.1扩展了PostGIS 2.0)。 DB中列的数据类型为“文本”。然后将文本显示在前端的div中,如下所示

<div id="formdescr" style="overflow-y:auto; height:400px; width:100%;"></div>


我的问题是,如果用户在表单中插入带有段落和换行符的长文本,则在div中不会显示所有内容。在div中,我看到的是连续的文本,没有中断,没有段落。

我该如何解决?

谢谢。

更新

我使用nodejs 0.10.12 / websockets从数据库传输到浏览器以及从浏览器传输到DB。我将文本放在div之类的document.getElementById("formdescr").innerHTML=descr;中,其中descr来自客户端中的websockets。在源代码中,我看不到任何文本。用户必须先搜索,然后div将获得文本。

最佳答案

您的问题是浏览器会忽略内容中的空白。多个空间和新行都在渲染的输出中折叠成一个空间。

如果要保留所有原始格式,包括缩进和换行符,则可以将文本输出到该div中的<pre>块中。

您的另一个选择是将空格编码为html实体。将<br>用于换行符,将&nbsp;用于应保留的空格。

关于javascript - 表单字段中的html标记不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21417334/

10-09 20:20
查看更多