你如何在jQuery中保留textarea中的换行符?

我知道我的问题与这个问题非常相似: jQuery text()函数在IE中丢失了换行符 ,但我的需求略有不同。

我的页面上有一个textarea,它有一个由用户输入的“模板”文本字符串。 (它允许他们使用%NAME%作为名称的占位符来编写消息。)

在用户完成“模板”之后,我将其放入第二个文本区域,该文本区域实际上将%NAME%替换为应该使用的任何名称。 我已经涵盖了该function的一部分,并且它完美地运行。

第二部分也适用于大多数浏览器。

但是,在Internet Explorer中,第一个textarea的换行符不会保留到第二个。 例如,如果用户输入第一个框:

Hi %NAME%, How are you? 

替换文本的名称是“Zak”,第二个框将显示为:

 Hi Zak,How are you? 

将文本放入第二个框的代码是:

 var inviteTemplate=$('#invitationTemplate').text(); inviteTemplate=inviteTemplate.replace(/%NAME%/g,name); $('#invitationText').html(inviteTemplate); 

我假设问题是使用.text()来获取textarea的内容。 有什么方法可以让IE保留换行符到第二个textarea?

我可以确认,在IE9 beta中,您可以将文本从一个TEXTAREA元素传输到另一个TEXTAREA元素,并保留换行符。

现场演示: http //jsfiddle.net/LWjP6/1/

您正在将数据作为文本读取并将其写为HTML。 您是否尝试过使用HTML BR标记替换换行符? 例如

 inviteTemplate = inviteTemplate.replace(/\n/g, '
');

我很确定能做你想做的事。