我有一个与通过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中,并且会看到新行没有显示。
我该如何解决这个问题?
答案 0 :(得分:101)
我认为更好的方法是添加
white-space: pre
或
white-space: pre-wrap
答案 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换行符替换你的换行符