使用 jQuery 和 JSON 时,如何让我的 textarea 保留换行符?
Posted
技术标签:
【中文标题】使用 jQuery 和 JSON 时,如何让我的 textarea 保留换行符?【英文标题】:How do I get my textarea to preserve newlines when using jQuery and JSON? 【发布时间】:2011-03-11 12:45:54 【问题描述】:我有一个文本区域供用户输入 cmets 和一个使用 jQuery 的 .post()
和 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()
似乎没有保留换行符(输入正在丢失换行符)。我如何让它发挥作用?
【问题讨论】:
【参考方案1】:文本区域不会在用户输入中插入 <br>
标记以换行,而是仅包含换行符 \n
。
当您单击带有虚线的按钮时,此 sn-p 将显示一个警告框。
<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】:使用$('#comment').val().replace( /\n/g, '<br \\>' );
。
【讨论】:
【参考方案3】:它会丢失新行吗?看看this post 可能吗?
【讨论】:
【参考方案4】:你只需要在 textarea 的值上使用 encodeURIComponent 并将它发送到服务器..当你打印出来..你可以使用 nl2br,例如 php
【讨论】:
【参考方案5】:我找到的唯一解决方案是在 json 之外单独传递 textarea 数据。在 json 内部,它需要像 \n 一样进行转义,但是当您从 db 重新加载它时,这会丢失新行。
因此,出于 json 的目的,我将其转义以避免解析错误。此外,我将这个 textarea 字段单独保存,因为它是由另一个(非 json 解析)变量保存的。
【讨论】:
以上是关于使用 jQuery 和 JSON 时,如何让我的 textarea 保留换行符?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 jquery 解析 json 数组中的结构化数据?
如何让我的引导程序和 jquery 在 Wamp 虚拟主机中工作?