簡體   English   中英

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

[英]How do you preserve the line breaks in a textarea in jQuery?

我知道我的問題與這個問題非常相似: jQuery text()函數在IE中丟失了換行符 ,但我的需求略有不同。

我的頁面上有一個textarea,它有一個由用戶輸入的“模板”文本字符串。 (它允許他們使用%NAME%作為名稱的占位符來編寫消息。)

在用戶完成“模板”之后,我將其放入第二個textarea中,該文本實際上將%NAME%替換為應該使用的任何名稱。 我已經涵蓋了該功能的一部分,並且它完美地運行。

第二部分也適用於大多數瀏覽器。

但是,在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?

您正在將數據作為文本讀取並將其寫為HTML。 您是否嘗試過使用HTML BR標記替換換行符? 例如

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

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

我可以確認,在IE9 beta中,您可以將文本從一個TEXTAREA元素傳輸到另一個TEXTAREA元素,並保留換行符。

現場演示: http //jsfiddle.net/LWjP6/1/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM