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()
是关键,其余的我已经实现了。不过还是要谢谢你的帮助:-)