div中文本中的新行

时间:2012-07-10 23:06:12

标签: html textarea

我有一个与通过ajax调用加载文本时有关的问题。

我从textarea中获取相关内容并将其存储在我的数据库中,当我想在div中显示文本时,它不尊重新行,因此所有文本都是连续的。

以下代码显示了一个小例子:

$(function() {
    $('.buttonA').click(function() {
        $('.message').html($('textarea[name="mensaje"]').val());
    });
});
.message {
    width:300px;
    height:200px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
<textarea name="mensaje" class="new_message_textarea" placeholder="enter message..."></textarea>
<button class="buttonA">Enter</button>
<div class="message"></div>

如果您输入一些带有新行的文字,一旦您点击该按钮,文本就会显示在div中,并且会看到新行没有显示。

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:101)

我认为更好的方法是添加

white-space: pre

white-space: pre-wrap
你的div风格。 见HTML - Newline char in DIV content editable?

答案 1 :(得分:16)

将此添加到CSS:

white-space: pre-line

答案 2 :(得分:12)

换行符不会对html渲染做任何事情。在你的js中改变这个:

$('.message').html($('textarea[name="mensaje"]').val());

......对此:

$('.message').html($('textarea[name="mensaje"]').val().replace(/\n/g, "<br />"));

...它将用适当的html换行符替换你的换行符