代码之家  ›  专栏  ›  技术社区  ›  chris

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

  •  2
  • chris  · 技术社区  · 15 年前

    我有一个多行文本框。当用户简单地输入时,文本框会将文本包装起来,并保存为一行。用户也可能输入换行符,例如当输入“项目符号”列表时,如:

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

    现在,当我试图显示这个字段的值时,问题就出现了。为了保留格式,我当前将演示文稿包装在 <pre> -这样做是为了保留用户提供的分隔符,但是当有很多文本保存为单行时,它将整个文本块显示为单行,从而需要水平滚动才能看到所有内容。

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

    5 回复  |  直到 15 年前
        1
  •  3
  •   Pekka    15 年前

    处理这种情况的最简单方法是将所有换行符都转过来。 \n 进入之内 <br> 断线。例如,在PHP中,可以使用 nl2br() 功能。

    如果你想要一些更花哨的东西-比如你引用的列表被转换成一个真正的HTML <ul> 例如,你可以考虑一种简单的“语言”,比如 Markdown 这样使用。它带有自然、简单的规则,比如

    # Heading 1
    ## Heading 2
    ### Heading 3
    
    * Unordered List item
    * Unordered List item
    
    1. Numbered List item 
    2. Numbered List item
    

    等。。。。

        2
  •  1
  •   greg0ire    15 年前

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

        3
  •  1
  •   VoteyDisciple    15 年前

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

        4
  •  1
  •   user151323    15 年前

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

    替换 "\r\n" "\n" (取决于浏览器和平台,请先检查较长的浏览器和平台) <br/> .

        5
  •  0
  •   D'Arcy Rittich    15 年前

    我通常会全部替换 CR/LF 具有 LF ,然后全部替换 低频 具有 <br /> . 然后,您可以在任何HTML容器中呈现此文本,并让它自然地流动。