7

.post()我有一个文本区域供用户输入评论和一个使用 jQuery和 JSON提交的按钮:

$('#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 回答 5

6

textarea 不会<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>

于 2010-07-03T23:33:59.350 回答
3

使用$('#comment').val().replace( /\n/g, '<br \\>' );.

于 2014-05-28T14:21:35.520 回答
1

它会失去新的线路吗?也许看到这个帖子?

于 2010-07-03T23:34:02.550 回答
1

您只需要在 textarea 的值上使用 encodeURIComponent 并将其发送到服务器..当您打印出来时..例如,如果是 PHP,您可以使用 nl2br

于 2015-03-10T12:41:31.353 回答
0

我发现的唯一解决方案是在 json 之外单独传递 textarea 数据。在 json 内部,它需要像 \n 一样进行转义,但是当您从 db.xml 重新加载它时,这会丢失新行。

因此,出于 json 的目的,我将其转义以避免解析错误。此外,我将这个 textarea 字段单独保存,因为它是由另一个(非 json 解析)变量保存的。

于 2021-02-05T22:00:09.030 回答