<textarea>多行文本域

定义和用法

<textarea> 标签定义多行的文本输入控件。

文本区中可容纳无限数量的文本,其中的文本的默认字体是等宽字体(通常是 Courier)。

可以通过 cols 和 rows 属性来规定 textarea 的尺寸,不过更好的办法是使用 CSS 的 height 和 width 属性。

注释:在文本输入区内的文本行间,用 "%OD%OA" (回车/换行)进行分隔。

提示:可以通过 <textarea> 标签的 wrap 属性设置文本输入区内的换行模式。

 

autofocus autofocus 规定在页面加载后文本区域自动获得焦点。
cols number 规定文本区内的可见宽度。
disabled disabled 规定禁用该文本区。
form form_id 规定文本区域所属的一个或多个表单。
maxlength number 规定文本区域的最大字符数。
name name_of_textarea 规定文本区的名称。
placeholder text 规定描述文本区域预期值的简短提示。
readonly readonly 规定文本区为只读。
required required 规定文本区域是必填的。
rows number 规定文本区内的可见行数。
wrap
  • hard
  • soft
规定当在表单中提交时,文本区域中的文本如何换行。。

禁止<textarea>拉伸的方式是设置 style="resize:none" 样式

问题一: <textarea> 高度不能自适应

解决:用 div + 属性 代替

  <div class="textarea" contenteditable=true>{内容... }</div>

  react 会警告,防止 react 的警告,再加一个属性

  suppressContentEditableWarning=true    V15以上可用

  tabIndex="-1"   让 div 拥有焦点,模拟 input ,可以使用 onFocus、onBlur,等。

注意:虽然是模仿 input ,却无法使用 onChange 事件,可以在 "失焦onblur"、"键盘抬起onkeyup"、等事件 中获取 ev.target.innerText 来操作修改内容

<div class="textarea" contenteditable={true}
    suppressContentEditableWarning={true}
    tabIndex="-1"
>{内容... }</div>

 

posted @ 2019-11-04 16:56  真的想不出来  阅读(1109)  评论(0编辑  收藏  举报