В contenteditable div прерывание строки игнорируется при нажатии клавиши ввода

Когда я нажимаю клавишу возврата, чтобы начать новую строку для сообщения, результат автоматически игнорирует ключ возврата. Я задавался вопросом, что самый распространенный способ сделать вывод фактически начинается с новой строки всякий раз, когда нажата клавиша возврата?

Ниже приведена демоверсия, которую я только что сделал для тестирования.

php-файл (linebreak.php)

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> <div id="comment_box" contenteditable="true" autocomplete="off" spellcheck="false" placeholder="How do you feel about?"></div> <div id="post_comment" class="comment_leg">Post</div> <div name="commentsubmit"></div> <style> #comment_box{ text-align: center; background-color: white; /*position:relative;*/ border: 1px solid orange; /*height:60px;*/ width: 500px; padding: 10px; color:black; border-radius:3px; /*font-size:18px;*/ display: inline-block; text-align: left; vertical-align: bottom; /*border-color:yellow;*/ } .comment_leg{ cursor:pointer; width:60px; /*height:18px;*/ background-color: #ffcc99; padding:5px; text-align: center; border-radius: 3px; display:hide; vertical-align: bottom; display: inline-block; } </style> <script> $(function(){ $("#post_comment").click(function(){ var txt = $("#comment_box").text(); if(txt){ $.post("commenttest.php", {txt: txt}, function(result){ $("div[name=commentsubmit]").prepend(result); $("#comment_box").text(''); }); } }) }) </script> 

php-файл (commenttest.php)

 <?php $comment=$_POST["txt"]; echo "<div style='color:orange'>".$comment."</div>" ?> 

Я отвечаю на это, потому что ваш другой вопрос был отмечен как дубликат.

Заменив 2 из ваших <div> на эти,

 <form> <textarea name="comment_box" id="comment_box"></textarea> <input id="post_comment" class="comment_leg" type="submit" value="Post"> </form> 

Он способен захватить пространство, изменив ваш скрипт, чтобы захватить текстовое поле с помощью метода .val ()

 var txt = $("textarea#comment_box").val(); if(txt){ $.post("commenttest.php", {txt: txt}, function(result){ $("div[name=commentsubmit]").prepend(result); $("textarea#comment_box").val(); }); } 

Чтобы напечатать его с разрывом строки, в своем комментарии commentest.php вставьте это перед тем, как вы эхо, и это то, что вы пробовали, но не работали из вашего дублированного сообщения или не рекомендовали ответ.

 $comment = nl2br($comment); 

Нет. <br /> там вообще нет. Там \r\n . Поэтому вам нужно использовать:

 $comment = nl2br($comment); 

Чтобы преобразовать все новые строки в ваш PHP-код.