下面是我的jQuery代码正在做的事情:
$('.newCommentBox form').live('submit', function () {
//Submit the form post
$.post($(this).attr('action'), $(this).serialize(), function (data) { showNewComment(data) });
return false;
});每当提交表单时,我都会获取结果,序列化它们,并通过POST将它们发送到特定的操作。当我们从服务器得到响应时,我调用showNewComment函数来实时显示添加的评论。
这是我的问题:我需要能够保留人们在评论中留下的空格,这样他们就可以控制较长评论的可读性。在呈现注释时,我使用JSON助手方法将.NET换行符转换为<br/>标记,但是当表单通过jQuery提交并通过JSON序列化时,所有这些行结束符都不会被保留,而当我在不使用AJAX的情况下执行此操作时,它工作得很好。
如何保留这些行尾,或者jQuery用什么替换了CRLF行尾?
发布于 2011-03-23 14:41:58
使用ajax时,根据浏览器和环境的不同,换行符会显示为\r\n和\n,但总的来说,我发现检查\n并将其替换为<br />是最安全的选择。
例如在C#中:
"Hello\nWorld".Replace("\n", "<br />");
or
"Hello\r\nWorld".Replace("\n", "<br />");发布于 2011-05-31 19:04:35
另一种方法是使用CSS空白属性设置输出样式。
<div style="white-space: pre;">
Hello
World
</div>应呈现为
Hello
World保留制表符和行距
有关更多信息,请参阅http://www.w3.org/TR/CSS2/text.html#white-space-prop
https://stackoverflow.com/questions/5401564
复制相似问题