2

我在显示来自文本区域的值时遇到问题。

我希望用户在我的 textarea 中输入一些文本,同时他们可能会输入一个新行(他们将按 Enter),然后在那一行之后,我想获取该 textarea 的值并将其显示在我的<span>标签中。

这里的问题是我的 span 标签中没有显示新行,我不知道会发生什么。

例如,用户在我的文本区域中输入了类似这样的内容:

Hello World!

How Are you?!

问题是在我的 span 标签中,它没有换行显示,所以结果是这样的:

Hello World! How Are you?!

我不想使用一些所见即所得的应用程序只是为了在我的跨度中允许新行。我相信这是有办法的。

请指导我这个。您的帮助将不胜感激!

谢谢!:)

4

3 回答 3

6

Textarea's make \n's,你想要的是html等价物<br />,所以使用这个字符串替换将所有\n's替换为<br />'s,你就是金色的。

在javascript中它会是

str = str.replace(/\n/g, '<br />');

在php中它会是

$str = nl2br($str);
于 2012-08-02T05:38:06.443 回答
2

浏览器将多个空白字符和换行符压缩回一个空格是正常的。在需要换行的地方插入<br>元素是常用的方法。

您的问题同时使用 PHP 和 JavaScript 进行了标记,但您不需要同时执行此任务。如果您要显示来自数据库的数据,那么最好在 PHP 代码中进行处理。对于浏览器中的动态页面更新,您将使用 JS。

在 PHPnl2br()中,当准备在 span 中结束的文本时使用:

echo nl2br($strWithNewLines);

或者在 JS 中:

var stringWithBrs = strWithNewlines.replace(/\n/g, '<br />')
于 2012-08-02T05:41:01.977 回答
1

试试这个技巧。

<pre><span id="wrapContent">
    <?php echo $str; ?>
</span></pre>
于 2012-08-02T05:44:56.917 回答