2011-05-05 65 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(); 
    }