Javascript jQuery:在<;中保留用户输入的换行符;textarea>;

Javascript jQuery:在<;中保留用户输入的换行符;textarea>;,javascript,jquery,textarea,Javascript,Jquery,Textarea,我在谷歌搜索了好几个小时,但似乎一辈子都找不到答案 我只想保留用户在元素中输入的换行符,通过jQuery$.ajax()调用发布内容。如果我像往常一样简单地将表单提交到一个页面,这是可行的,但是我的老板告诉我使用REST/AJAX SO和网络上的许多帖子都提到用替换\n,或者使用空白:预包装在元素的CSS中。这些解决方案对我不起作用,因为换行符根本不会出现在Chrome开发者工具中 代码段: <form id="addPostForm" role="form" method="post"

我在谷歌搜索了好几个小时,但似乎一辈子都找不到答案

我只想保留用户在
元素中输入的换行符,通过jQuery
$.ajax()调用
发布内容。如果我像往常一样简单地将表单提交到一个页面,这是可行的,但是我的老板告诉我使用REST/AJAX

SO和网络上的许多帖子都提到用

替换
\n
,或者使用
空白:预包装在元素的CSS中。这些解决方案对我不起作用,因为换行符根本不会出现在Chrome开发者工具中

代码段:

<form id="addPostForm" role="form" method="post" action="/blog">
    <div class="form-group">
        <textarea rows="5" id="postBody" name="postBody"></textarea>
        ...more input controls
    </div>
    <button type="submit" class="btn btn-primary btn-block">Submit</button>
</form>
<script type="text/javascript">
    $(document).on('submit', '#addPostForm', function() {
        var postBody = $(this)[0].postBody.value;
        ...more code
    });
</script>

…更多输入控件
提交
$(文档).on('submit','#addPostForm',函数(){
var postBody=$(this)[0].postBody.value;
…更多代码
});
当我输入时,例如:

“这是第一段

还有一个

还有一个。”

postBody
变量的值为:

“这是第一段。还有一段。还有一段。”

这快把我逼疯了!当然,这不应该像看起来那么难

顺便说一句,我不认为这会有什么不同,但万一有人想知道,我在这个项目中使用Python/Pyramid、Jinja2和Bootstrap3。

在JS中使用它

$("input[type=submit]").click(function(){
  $.ajax({
   type: "POST",
   url: "yoururl",
   data: $("#addPostForm").serialize()
   (...)
  });
});

在服务器端代码中,您可以使用原始空格获取POST-value-postBody。

在我看来,这个问题源于Chrome-Dev工具剥离换行符。更改工具设置,或尝试firebug之类的其他操作。

对不起,浪费了您的时间,只需使用
$('#postBody').val()
而不是
$(this)[0].postBody.value
。无论如何,感谢所有的评论者和回答者

试着用“\n”(是的,我已经测试过了)拆分这些行,然后用
标记重新连接它们,检查一下:

$('textarea').val().split('\n')
将其放入onclick函数中,并在其上设置断点。如果您使用的是Chrome,它会将行拆分为一个数组。如果你加入他们

.join('<br>')
.join(“
”)

你应该很乐意去。

“+100声誉,任何人都可以解决这个奇怪的问题!”没有赏金(甚至没有100声誉),你怎么能保证这一点?你如何查看
博文
的内容?所显示的代码中没有任何内容可以去掉换行符,因此我只能假设您是在不显示换行符的内容中查看换行符,即在html元素中呈现时,您不会看到换行符,因此,为什么有人建议用

@Anonymous替换换行符:哈哈,对不起,我不该这么说……我真的只是想说我会非常高兴grateful@PatrickEvans:我正在使用Chrome Developer中的Sources选项卡Tools@Kenny83只是要小心,因为:)。这不应该改变任何事情,因为他们做同样的事情,jQuery的
val
函数检索textarea的
.value
属性i know;这对我来说毫无意义,但你瞧,它起作用了!也许某个地方有一些关键的代码行导致了这种情况,而我却没有看到,但我所知道的是,我现在可以在Chrome开发工具中通过使用
val()
而不是
value
看到
\r\n
。算了吧!是的,使用
.val()
是关键,其余的我已经实现了。不过还是要谢谢你的帮助:-)