使用JavaScript写入HTML时的换行问题

时间:2011-09-06 15:14:25

标签: javascript jquery json

我正在使用常规文本框作为文本输入,用户可以在其中记录他们的评论。然后我使用JQuery和JSON将数据发送到服务器,然后将其插入数据库。

当我想显示这个文本时,我使用jQuery下载它准备HTML并在浏览器中显示它,但是没有新行。

如何保留用户输入的任何换行符,以便它们显示在浏览器中?

编辑:

问题在于,当我提醒$('。detailsCommentContent')。val()时,我可以在警报窗口看到换行符,但是当我将其作为GET参数传递时:

insertComment.aspx?id = 10& content =“+ $('。detailsCommentContent')。val()”

然后在网址中没有newLine的迹象:(

4 个答案:

答案 0 :(得分:2)

就像这样的回答:keep formatting entered in asp.net textbox (carriage return, new line, etc)

theStringYouWantToFormat.Replace(char.ConvertFromUtf32(13),"<br/>")

答案 1 :(得分:2)

在使用javascript向页面写出HTML之前,请务必使用<br />标记替换所有换行符。这是一个简单的字符串扩展,允许您使用javascript(source):

String.prototype.NewlineToBR = function() {
    return this.replace( /\r\n|\r|\n/g, br || '');
}

用法:

var htmlString = newlineString.NewlineToBR();

然后只需将新字符串插入HTML。

答案 2 :(得分:1)

你想在哪里显示文字?在textarea或直接在页面上?

如果在页面上,当从数据库获取文本并将其打印到页面时,您必须将换行符转换为<br/>标记。

答案 3 :(得分:-2)

我相信这取决于你正在使用的编码。 unicode和ascii之间的区别或类似的东西。我做了类似的事情已经有一段时间了,但我认为它归结为两种选择。

  1. 在保存和加载时匹配编码(我们发现我们在一个上有ascii而在另一个上有unicode)。
  2. 保存时将所有新行字符替换为arbotary值,并在加载时将其交换回来。