Как я могу получить текстовую область для сохранения новых строк при использовании jQuery и JSON? - PullRequest
7 голосов
/ 04 июля 2010

У меня есть текстовое поле для ввода комментариев пользователями и кнопка для отправки с использованием .post() и JSON jQuery:

$('#submit').click(function () {
    var comment = {};
    comment.Author = $("#author").val();
    comment.Email = $("#email").val();
    comment.WebSite = $("#url").val();
    comment.Body = $("#comment").val(); // textarea

    $.post('/ajax/comments', comment, parseComment, 'json');

Но $("#comment").val(), похоже, не сохраняет новые строки (ввод теряет новые строки).Как мне заставить это работать?

Ответы [ 4 ]

5 голосов
/ 04 июля 2010

Текстовое поле не вставляет теги <br> в пользовательский ввод для разрывов строк, скорее оно просто включает символ новой строки \n.

Этот фрагмент покажет окно с предупреждением при нажатии кнопки с пунктирной линией.

<script type="text/javascript">
  $(document).ready(function(){
    $('#submit').click(function() { alert($('#comment').val()); })
  });
</script>

<textarea id='comment'></textarea>
<input type='submit' id='submit'/>

Если вам нужно отобразить их на html-странице, вам нужно заменить \n на <br>.

2 голосов
/ 28 мая 2014

использовать $('#comment').val().replace( /\n/g, '<br \\>' );.

2 голосов
/ 04 июля 2010

Это теряет новые линии?Смотрите этот пост возможно?

1 голос
/ 10 марта 2015

Вам просто нужно использовать encodeURIComponent для значения текстовой области и отправить его на сервер ... когда вы его распечатываете ... вы можете использовать nl2br, если PHP, например,

...