最佳实践:显示通过多行文本框输入的文本

时间:2010-06-09 14:59:22

标签: html textarea

我有一个多行文本框。当用户只需键入时,文本框将包装文本,并将其保存为单行。用户也可以输入换行符,例如在输入“项目符号”列表时:

Here are some suggestions:
 - fix this
 - remove that
 - and another thing

现在,当我尝试显示此字段的值时,会出现问题。为了保留格式,我目前将演示文稿包装在<pre>中 - 这可以保留用户提供的中断,但是当有大量文本保存为单行时,它会将整个文本块显示为单行,导致需要水平滚动来查看所有内容。

有没有一种优雅的方式来处理这两种情况?

5 个答案:

答案 0 :(得分:3)

处理此问题的最简单方法是将所有换行符\n转换为<br>换行符。例如,在PHP中,这是使用nl2br()函数完成的。

如果你想要一些更有趣的东西 - 例如你引用的列表被转换为实际的HTML <ul> - 你可以考虑使用SO Markdown之类的简单“语言”。它带有自然,简单的规则,如

# Heading 1
## Heading 2
### Heading 3

* Unordered List item
* Unordered List item

1. Numbered List item 
2. Numbered List item

等...

答案 1 :(得分:1)

你可以使用php函数nl2br()它将换行符转换成
元素

答案 2 :(得分:1)

显式地将换行符转换为<br />标记,并让浏览器对文本进行正常的自动换行。这样可以保留访问者输入的休息时间,而不会损害其他段落。

答案 3 :(得分:1)

您可以使用HTML换行符替换换行符。

使用"\r\n"替换"\n"<br/>(取决于浏览器和平台,请先检查更长版本)。

答案 4 :(得分:0)

我通常会将所有CR/LF替换为LF,然后将所有LF替换为<br />。然后,您可以在任何所需的HTML容器中呈现此文本,并使其自然流动。