Input 输入框

通过鼠标或键盘输入字符

基础用法

禁用状态

通过 disabled 属性指定是否禁用 input 组件

一键清空

使用clearable属性即可得到一个可一键清空的输入框在版本 2.13.4 之后,Input 的 textarea 类型也支持 clearable 功能。

自定义清除图标2.11.0

你可以通过clear-icon属性自定义清除图标

格式化

在 formatter的情况下显示值,我们通常同时使用 parser

密码框

使用 show-password 属性即可得到一个可切换显示隐藏的密码框自 2.13.6 起,支持使用 password-icon 插槽覆盖默认图标。

带图标的输入框

带有图标标记输入类型

要在输入框中添加图标,你可以简单地使用 prefix-icon 和 suffix-icon 属性。另外, prefix 和 suffix 命名的插槽也能正常工作。

使用属性
使用插槽

文本域

用于输入多行文本信息可缩放的输入框。添加 type="textarea" 属性来将 input 元素转换为原生的 textarea 元素。

文本域高度可通过 rows 属性控制

自适应文本域

设置文字输入类型的 autosize 属性使得根据内容自动调整的高度。你可以给 autosize 提供一个包含有最大和最小高度的对象,让输入框自动调整。

复合型输入框

可以在输入框中前置或后置一个元素,通常是标签或按钮。

可通过 slot 来指定在 Input 中分发的前置或者后置的内容。

Http://
.com
选择
选择

尺寸

使用 size 属性改变输入框大小。除了默认大小外,还有另外两个选项: large, small。

输入长度限制

使用 maxlength 和 minlength 属性, 来控制输入内容的最大字数和最小字数。"字符数"使用JavaScript字符串长度来衡量。 为文本或文本输入类型设置 maxlength prop可以限制输入值的长度。 允许你通过设置 show-word-limit 到 true 来显示剩余字数。从 2.11.5 版本开始,你可以将 word-limit-position 设置为 outside,以在输入框外显示字数统计。

0 / 10
0 / 10
0 / 30
0 / 30

计数图形2.13.7

设置 count-graphemes 以计算文本长度。如果设置了该属性,则不会使用原生的 maxlength 和 minlength。

TIP

浏览器支持 & 回退策略

当使用 count-graphemes prop时,组件使用以下方法:

主要: 使用 Intl.Segmenter API (Chrome 87+, Firefox 125+, Safari 14.1+) 进行适当的图形集群处理。它能够正确处理复杂的表情符号、组合标记和0宽度连接符序列。

回退: 旧版浏览器会回退到 Array.from() 进行基于码点的迭代。请注意,这可能会拆分多码点字形序列(例如,带有肤色修饰符的表情符号)。

在实现自己的 count-graphemes 函数时,如果需要对复杂的 unicode 字符提供强大的支持,请考虑使用 Intl.Segmenter。

2 / 10
2 / 20

Input API

Input Attributes

属性名说明类型默认值
id原生 input 的 idstring—
value绑定值string / number / null—
modelModifiersv-model 修饰符,React 中用对象显式传入object—
type类型,支持原生 input 类型与 textareastringtext
size尺寸enum—
maxlength最大输入长度string / number—
minlength最小输入长度string / number—
showWordLimit是否显示字数统计,仅在 type 为 text 或 textarea 时生效booleanfalse
wordLimitPosition字数统计的位置enuminside
placeholder输入框占位文本string—
clearable是否可清空,textarea 同样支持booleanfalse
clearIcon自定义清除图标ReactNodeCircleClose
formatter指定输入值的格式化函数Function—
parser从 formatter 格式化后的值还原为实际值Function—
showPassword是否显示切换密码图标booleanfalse
passwordIcon自定义密码可见性图标,参数为当前是否明文Function—
disabled是否禁用booleanfalse
readOnly是否只读booleanfalse
prefixIcon前缀图标ReactNode—
suffixIcon后缀图标ReactNode—
rows输入框行数,仅 type 为 textarea 时有效number2
autosize自适应内容高度,仅 type 为 textarea 时有效boolean / objectfalse
resizable控制 textarea 是否能被用户缩放,对应官方 resizeenum—
autoComplete原生 autocomplete 属性stringoff
name原生 name 属性string—
form原生 form 属性string—
autoFocus是否自动聚焦booleanfalse
aria-label原生 aria-label 属性string—
tabIndex输入框的 tabindexnumber0
inputMode原生 inputmode 属性string—
validateEvent值变化与失焦时是否触发 FormItem 校验booleantrue
inputStyle应用到内部 input / textarea 的样式object{}
countGraphemes自定义字素计数函数;设置后不再使用原生 maxlength / minlengthFunction—
containerRole容器 role,供内部组件使用string—

Input Events

事件名说明参数
onChange输入值改变时触发,对应官方 v-model 与 input 事件Function
onValueChange输入框失去焦点或用户按下回车时触发,对应官方 change 事件Function
onFocus输入框获得焦点时触发Function
onBlur输入框失去焦点时触发Function
onClear点击 clearable 生成的清空按钮时触发Function
onKeyDown在输入框中按下按键时触发Function
onMouseEnter鼠标移入时触发Function
onMouseLeave鼠标移出时触发Function
onCompositionStart输入法组合输入开始时触发Function
onCompositionUpdate输入法组合输入更新时触发Function
onCompositionEnd输入法组合输入结束时触发Function

原生 input 的其余属性(如 onPaste、onCopy、max、min、step)会透传到内部元素。

Input Slots

插槽名说明React 写法
prefix输入框头部内容,仅 type 不为 textarea 时生效prefix
suffix输入框尾部内容,仅 type 不为 textarea 时生效suffix
prepend输入框前置内容,仅 type 不为 textarea 时生效prepend
append输入框后置内容,仅 type 不为 textarea 时生效append
password-icon自定义密码图标,参数为当前是否明文passwordIcon

Input Exposes

通过 ref 获取,类型为 InputExpose:

const inputRef = useRef<InputExpose>(null);
<ElInput ref={inputRef} />;
inputRef.current?.focus();
名称说明类型
focus使输入框获得焦点Function
blur使输入框失去焦点Function
select选中输入框中的文本Function
clear清空输入值Function
resizeTextarea重新计算 textarea 高度Function
input原生 input 元素object
textarea原生 textarea 元素object
ref原生 input 或 textarea 元素object
textareaStyle应用到 textarea 的样式object
autosize当前 autosize 配置boolean / object
isComposing是否处于输入法组合输入中boolean
passwordVisible密码是否明文显示boolean
tabindextabIndexReact 中仅接受 number

说明:

  • countGraphemes 已实现完整截断逻辑:优先使用 Intl.Segmenter 按字素簇插入,旧环境回退到码点迭代。
  • validateEvent、Form / FormItem 的 size / disabled 继承以及校验状态图标(success / error / validating)均已接入。
  • validateEvent 依赖 ElFormItem 上下文;脱离表单使用时不会触发校验。