文本框在IE中不显示换行符

5

看起来IE在将文本放入文本区域时忽略了\r\n。以下是在FF/Chrome/Opera中的效果:

Paragraph1 sometext
Paragraph2 othertext

在IE7/8中:

Paragraph1 sometextParagraph2 othertext

我尝试更改“new-line”CSS参数,但没有成功。有什么想法可能出了问题?

我使用asp.net作为后端,在那里我将文本分配给文本区域,但我怀疑这与问题无关。

更新:似乎是asp.net在不同的浏览器中以不同的方式呈现asp:TextArea - 对于IE,它似乎忽略换行符。当我用textarea替换asp:TextBox时,我得到了正确的结果。有什么想法如何解决这个问题吗?


1
如果你查看页面的源代码,你能看到换行符吗?这将让你知道是后端问题还是前端问题。 - pau.moreno
嗯,当我查看源代码时,在Chrome中我看到了新的行,但在IE中没有。这可能是IE没有给我正确的源代码吗?我怀疑asp.net会为不同的浏览器呈现不同的文本。 - Andrey
也许你应该展示一下设置文本框文本的代码。 - Erik Funkenbusch
@Mystere Man:txtMemberObjectives.Text = "段落1文字\r\n段落2文字"; - Andrey
好的,那么 txtMemberObjectives 是带有 runat="server" 的 HTML <textarea> 吗?还是多行的 <asp:TextBox> - Erik Funkenbusch
这是一个多行的asp:TextBox。实际上,它在IE中呈现的方式似乎与在FF/Chrome中不同 - 当我将asp:TextBox替换为服务器端textarea时,它会正确显示。 - Andrey
4个回答

0

换行符是\r\n,而不是\n\r。是的,这很重要。


当然是这样,我打错了问题。谢谢你纠正我。 - Andrey

0

将“MultiLine”设置为“TextMode”的文本框是呈现到的,因此这不是问题...


<asp:TextBox runat="server" TextMode="MultiLine"/> 相当于 <textarea></textarea> - liron

0

我遇到了同样的问题,如果指定标记为TextMode="MultiLine"的TextBox的宽度,则会导致上述行为。我通过手动指定文本框的行和列属性来解决这个问题。


0
原来我的问题与textarea本身无关,而是与我转义输出和解除输入的方式有关。我会为那个问题开一个新的提问。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接