【问题标题】:Why is the textarea control inserting a line break into the control's value when wrapping?为什么 textarea 控件在换行时会在控件的值中插入换行符?
【发布时间】:2018-12-20 18:58:55
【问题描述】:

即使用户没有插入新行,也会在 textarea 的值中插入换行符。

我想继续在控件中使用文本换行,并允许用户在需要时输入换行符。但是浏览器在换行时插入换行符是不可接受的。

这不应该发生,因为 textarea 设置为软换行。

<textarea type="text" id="Answers_Text" runat="server" class="answerTextBox" maxlength="256" wrap="soft"></textarea>

.answerTextBox {
    height: 60px;
    width: 580px;
    font-size: 14px;
    white-space: pre-wrap;
    word-break: normal;
}

如果您输入的句子正好适合文本区域的宽度,然后输入一个空格并开始输入新句子,则第二个句子会正确换行到第二行,并且不会插入换行符。但是,如果您输入一个空格作为第二个句子的第一个字符,则会在该句子的开头插入一个文字换行符,替换通常在换行时使用的软换行符。

我已尝试在 Chrome 和 Firefox 中对此进行测试,但此硬换行符仅在 Chrome 中插入。据我了解,只有将 wrap 属性设置为“硬”时才会发生这种情况。有没有我缺少的设置?还是这是预期的行为?

【问题讨论】:

  • 你试过关闭 textarea 元素吗? &lt;textarea type="text" id="Answers_Text" runat="server" class="answerTextBox" maxlength="256" wrap="soft"&gt; &lt;/textarea&gt;
  • 现在是一个自动关闭标签。据我所知,这个元素允许自动关闭。我确实尝试更改为显式结束标记,结果相同。
  • 好吧,textarea 不是自闭合元素 (source)。你能做一个 jsfiddle 让我们看看问题吗?
  • 啊,那我很抱歉。这是带有正确结束标签的小提琴链接:link
  • 感谢您的提琴。我可以确认问题出现在 Windows 8.1 上的 Chrome 中,但不在 Firefox 中。正如@Godot 所说。我玩过css,但找不到解决方案。我会说这是 Chrome 浏览器的一种奇怪行为。

标签: html css google-chrome


【解决方案1】:

关闭&lt;textarea&gt;&lt;/textarea&gt;标签!

<textarea type="text" id="Answers_Text" runat="server" class="answerTextBox" maxlength="256" wrap="soft" ></textarea>

【讨论】:

  • 编辑了关闭标签的问题。问题仍然存在。
猜你喜欢
  • 1970-01-01
  • 2010-09-07
  • 2021-07-21
  • 2013-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多