2011-05-05 66 views
6

使用jQuery的​​方法我正在將文本加載到textarea中。在Chrome & FF中正常工作。與往常一樣,IE必須有所不同,不會顯示換行符。我試過white-space:pre-wrap沒有運氣。換行符不會顯示在IE的textarea中

任何想法?

我的代碼:

$('#textarea').load('data.php'); 

data.php簡單查詢MySQL數據庫,並打印出結果。

+4

什麼構成的換行符?他們是\ r \ n? – 2011-05-05 14:19:20

回答

4

當使用innerHTML()時,它們與IE的兼容性問題。由於jquery的.html()和​​方法都使用innerHTML(),它們通過擴展可能會導致一些問題。 一種解決方案是使用.text()代替。如果你想文本加載到使用AJAX和jQuery你需要做的是這樣的一個<textarea>

$('#textarea').post('data.php',function(data){ 
     $(this).text(data); 
    }) 
); 
+4

這對我不起作用,但我可以通過使用'.val'解決我的問題 - http://stackoverflow.com/questions/5583040/show-newlines-in-html-textarea/5583094#5583094 – 2013-04-25 14:43:46

8

這可能是一個line-ending issue。文本\n s或\r\n s是否斷行?如果他們只是\n s嘗試正常化文本。

function normalizeNewlines(text) 
{ 
    return text.replace(/(\r\n|\r|\n)/g, '\r\n'); 
} 

這是本質上是在做相反的,當過去爲我工作的解決方案:你可以用一些JavaScript做到這一點,我需要把文本了<pre>可能被粘貼到[email protected]#$ing記事本並顯示完整的換行符。

+1

很高興看到一個馬特提出了一個原因,另一個馬特同時爲該原因寫了一個解決方案。 ;) – 2011-05-05 14:24:07

+0

我們matts有一個特殊的債券:) – 2011-05-05 17:04:58

+0

@Matt感謝您的回覆。我已經嘗試過,沒有運氣。我試圖用'data.indexOf('\\')來檢查字符串中的特殊字符'是這樣嗎? – 2011-05-05 19:46:39

1

我用kendoui電網聯編輯模式,爲描述字段textare被applyed,該解決方案是爲即內嵌樣式:

<textarea style="white-space:pre-wrap;" name="' + options.field + '" ... 

而且在keydown事件下面的代碼:

if (event.keyCode == 13) { 
     event.stopPropagation(); 
    }