New lines in text within a div

HtmlTextarea

Html Problem Overview


I have a little issue related to when I place a text loaded via ajax call.

I take the contect from a textarea and store it in my database and when I want to show the text in a div, it doesn't respect the new lines, so all the text is continuous.

The following code show a small example:

$(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>

If you type some text with some new lines, once you click on the button, the text is show into the div and will see that new lines are not show.

How can I solve this?

Html Solutions


Solution 1 - Html

I think a better way to achieve this is to add

white-space: pre

or

white-space: pre-wrap

style to your div.

See: https://stackoverflow.com/questions/19038070/html-newline-char-in-div-content-editable

Solution 2 - Html

Add this to the CSS:

white-space: pre-line

Solution 3 - Html

Newline characters don't do any thing to html rendering. Change this in your js:

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

...to this:

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

...and it will replace your newlines with a proper html line break

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestiondomoindalView Question on Stackoverflow
Solution 1 - HtmlChris.ZouView Answer on Stackoverflow
Solution 2 - HtmlCong LanceView Answer on Stackoverflow
Solution 3 - HtmlJoeCortopassiView Answer on Stackoverflow