【问题标题】:Show line breaks in a textarea input field在文本区域输入字段中显示换行符
【发布时间】:2013-03-01 20:54:59
【问题描述】:

我一直在寻找这个问题的答案,但无济于事。

我正在将表单 Teatarea 字段中的文本输入到包含换行符的 MySQL 数据库中,当返回并使用 PHP 写入 html 时,我首先分解数据并将其放入数组中,然后在其中添加每个数组项无序列表中的段落标签或列表标签。

问题是当用户在 textarea 字段中输入文本时,没有办法从视觉上区分文本换行和换行符,如果有办法区分两者,用户会更清楚,可能换行符后的空格或表示行尾的符号,如段落符号。

有没有人能解决这个问题?

【问题讨论】:

  • 您能提供一些您的代码吗?
  • 无法使用标准文本区域完成。你不能“格式化”那里的文本。如果您使用的是 TinyMCE 之类的在线编辑器,您可能会插入一个特殊的显示字符来显示换行符。 html <br> 等等。
  • 在 TinyMCE 中,您可以使用 [ENTER] 强制段落并使用 [SHIFT]+[ENTER] 进行中断
  • @Cups 但是用户能从视觉上分辨出区别吗?我认为这就是他想要的,换行符的视觉指示符。
  • 感谢您的输入,是的,我考虑过使用 html 编辑器,但我正在为其工作的人认为,他们的非网络客户会被 html 编辑器弄糊涂值得。

标签: php html mysql css forms


【解决方案1】:

基于你的cmets上没有使用可用的html编辑器,你可以模仿如下

你可以有一个简单的 javascript 函数来捕获每个键请求(onkeypress() 到 textarea),如果那个键是 '\n' 然后放置一个分隔符之类的东西,否则就把它放出来

更新

传统的html textarea只能显示ascii字符(太局限了) 所以去寻找新的HTML5标签contenteditable就像

<div contenteditable="true"></div>

在这个 div 上,您可以应用 javascript 来获得所需的结果。

例如,如果用户按下“Enter 键”(例如),那么您可以将 &lt;hr/&gt; 附加到 div 元素。每当按下 Enter 键时,您都会看到一条水平线,这将其与文本换行或不可见字符区分开来

【讨论】:

  • 感谢您的建议,我正在考虑如何工作,但是如果您使用像
    这样的 html 标签,它们会在文本区域中逐字显示,如果您使用 ASCII 换行符 \n 它是不可见的,这是我开始的问题。在文本区域中,当您使用 enter 键时,它会放入一个不可见的 ASCII \n .
  • 谢谢@funtime,我会尝试这个解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-14
  • 2021-04-30
  • 1970-01-01
  • 2020-03-21
  • 2010-12-01
  • 1970-01-01
相关资源
最近更新 更多