【问题标题】:Why does <textarea> in React accept a value attribute but in HTML, it does not?为什么 React 中的 <textarea> 接受值属性,但在 HTML 中却不接受?
【发布时间】:2020-10-23 08:29:52
【问题描述】:

不确定这是否是特定于 React 的,但是,为什么以下在 React 中起作用并将一些文本呈现给元素:

<textarea value="Some text."></textarea>

但在纯 HTML 中却没有:

<textarea value="Some text."></textarea>

也许我错过了什么或做了一些愚蠢的事情?提前致歉并致谢!

【问题讨论】:

  • 因为 React 团队就是这样构建它的。除了他们试图使所有表单输入之间的 API 保持一致之外,没有其他原因。

标签: html reactjs textarea


【解决方案1】:

在 HTML 中,text 区域是一个非自闭合标签并且有内容。它由孩子定义其文本。

textarea

<textarea id="story" name="story" rows="5" cols="33">
  It was a dark and stormy night...
</textarea>

在 React 中,它使用 value 属性。请注意,它也是自动关闭的,不带子项。

textarea tag

这使textarea 元素与inputselect 等其他表单元素保持一致。

<textarea
  id="story"
  name="story"
  rows="5"
  cols="33"
  value="It was a dark and stormy night..."
/>

【讨论】:

    【解决方案2】:

    textarea子内容代表文本区域的默认值,但value属性代表当前的值。

    需要通过JS操作的是当前值,而不是默认值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-07
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多