【问题标题】:How would I use jquery to add a line break when pressing enter in a html textarea在 html textarea 中按 enter 时如何使用 jquery 添加换行符
【发布时间】:2013-10-01 12:36:56
【问题描述】:

我一直在搜索 Google,发现了一些有趣的方法来做到这一点,但它们都没有隐藏 <br />

我读到如果我使用\n 它不会显示,但它会显示在文本字段中。我总是可以在 textarea 和 preg_replace 它和 <br /> 中有一些东西我想在我的 php 中处理与文本区域关联的表单。

为了澄清,我有一个文本区域,需要几个换行符来分隔内容。所以我希望用户能够按回车键换行,并在每行的末尾添加一个<br />。但我不希望 <br /> 或我插入稍后替换的任何内容对用户可见。

Facebook 就是一个很好的例子。 Facebook 的 JavaScript 很重。如此之多,以至于您需要按 shift + enter 才能获得新行,以免表单提交。但是,当您在两行上输入文本时,会插入一个换行符,因此内容会显示在两行上,而您在撰写帖子时永远不会看到 <br /> 或它们在表单中使用的任何内容。

我该怎么做?

【问题讨论】:

  • 您使用的是textarea 还是contentEditable?这会产生巨大的差异。
  • html 文本区域。我相信我在我的帖子中写了这个。很抱歉造成混乱。
  • <textarea> 的默认行为 is 插入换行符,所以我有点困惑。您是否正在获取价值并将其显示在其他地方?
  • 您的假设与我在使用 Facebook 时看到的不符。我可以在不提交帖子的情况下按 Enter。我认为对于 cmets 来说是不同的。此外,换行符表示为\n,而不是/n
  • /n 是我的类型错误。事情就是这样。我正在获取价值并将其显示在其他地方。在我的 textarea 中,我可以按回车键进入数据库,在数据库中,文本位于单独的行中。但是数据库中没有 \n 或 br 因为我没有指定存在。所以当我打印出内容时,一切都在一行上。我对 Facebook 的看法是它做我想做的事。您按回车键,文本在新行上,您在 textarea 中看不到 \n 或 br,但是当结果打印在页面上时,它们就在自己的行上。

标签: javascript php jquery html


【解决方案1】:

我使用php nl2br 函数将\n 转换为<br />

http://www.php.net/manual/en/function.nl2br.php

我喜欢这种方法,因为它不需要任何额外的东西。只需将 nlbr2() 包裹在我的变量周围即可。 php已经准备好为我添加\n了,只需要转换它。

【讨论】:

  • 记住:HTML4 = <br>, XHTML = <br />, HTML5 = <br>;如果是 HTML5,请使用 nl2br($str, false);
  • 您能否详细说明一下 false 的用途?
  • 不,我的评论说得很清楚,您可以阅读您发布的链接:php.net/manual/en/function.nl2br.php
【解决方案2】:

在保存类似内容之前使用 nl2br()。

http://www.php.net/manual/en/function.nl2br.php

$content = nl2br($content);

然后保存。

【讨论】:

  • 我已经准备好用这个作为答案来回答这个问题,但还是谢谢你。
  • 我正在准备这个,你的答案出现了。
  • 那里s 7 minutes difference between the answers, how long were you preparing nl2br()` :D
猜你喜欢
  • 2014-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多