输入框
通过鼠标或键盘输入数据。
基础用法
禁用状态
使用 disabled
属性禁用输入框。
可清空
使用 clearable
属性使输入框可清除。
自定义清除图标 2.11.0
您可以通过设置 `clear-icon` 属性来自定义清除图标。
格式化
使用 formatter
按需格式化输入框的值,通常我们同时使用 parser
。
密码框
使用 show-password
属性创建一个可切换显示状态的密码输入框。
带图标的输入框
添加图标以指示输入类型。
要在输入框中添加图标,您可以简单地使用 prefix-icon
和 suffix-icon
属性。此外,名为 prefix
和 suffix
的插槽也同样有效。
文本域
可调整大小,用于输入多行文本信息。添加 type="textarea"
属性可将 input
更改为原生的 textarea
。
通过设置 rows
属性来控制高度。
自适应文本域
为文本域类型的输入框设置 autosize
属性可以使高度根据内容自动调整。可以为 autosize
提供一个选项对象,以指定文本域可自动调整的最小和最大行数。
复合型输入框
在输入框前置或后置一个元素,通常是标签或按钮。
使用 slot
来分发前置或后置于输入框的元素。
尺寸
添加 size
属性来改变输入框的大小。除了默认尺寸外,还有两种其他选项:large
、small
。
限制长度
maxlength
和 minlength
是 input 的原生属性,它们声明了用户可以输入字符数的限制。“字符数”是使用 JavaScript 字符串长度来度量的。为文本或文本域类型的输入框设置 maxlength
属性可以限制输入值的长度,同时设置 show-word-limit
为 true
可以显示字数统计。
API
属性
名称 | 描述 | 类型 | 默认值 |
---|---|---|---|
type | 输入框的类型 | string 原生输入框类型 | 文本 |
model-value / v-model | 绑定值 | string / number | — |
最大长度 | 与原生输入框的 `maxlength` 相同 | string / number | — |
最小长度 | 与原生输入框的 `minlength` 相同 | string / number | — |
show-word-limit | 是否显示字数统计,仅在 type 为 'text' 或 'textarea' 时有效 | boolean | false |
占位符 | 输入框的占位符 | string | — |
可清空 | 是否显示清除按钮,仅在 type 不为 'textarea' 时有效 | boolean | false |
清除图标 2.11.0 | 自定义清除图标组件 | string / object | CircleClose |
格式化程序 | 指定输入框中显示值的格式。(仅当 type 为 'text' 时有效) | Function | — |
解析器 | 指定从格式化输入中提取的值。(仅当 type 为 'text' 时有效) | Function | — |
show-password | 是否显示可切换的密码输入框 | boolean | false |
disabled | 输入框是否被禁用 | boolean | false |
size | 输入框的大小,当 type 不为 'textarea' 时有效 | 枚举 | — |
前缀图标 | 前缀图标组件 | string / Component | — |
后缀图标 | 后缀图标组件 | string / Component | — |
行数 | 文本域的行数,仅当 type 为 'textarea' 时有效 | number | 2 |
自适应高度 | 文本域是否具有自适应高度,仅当 type 为 'textarea' 时有效。可接受一个对象,例如 { minRows: 2, maxRows: 6 } | boolean / object | false |
自动补全 | 与原生输入框的 `autocomplete` 相同 | string | off |
名称 | 与原生输入框的 `name` 相同 | string | — |
只读 | 与原生输入框的 `readonly` 相同 | boolean | false |
max | 与原生 input 的 max 相同 | — | — |
min | 与原生 input 的 min 相同 | — | — |
步长 | 与原生 input 的 step 相同 | — | — |
调整大小 | 控制可调整大小性 | 枚举 | — |
自动聚焦 | 与原生输入框的 `autofocus` 相同 | boolean | false |
表单 | 与原生 input 的 form 相同 | string | — |
aria-label a11y 2.7.2 | 与原生输入框的 `aria-label` 相同 | string | — |
tabindex | 输入框的 tabindex | string / number | — |
validate-event | 是否触发表单验证 | boolean | true |
input-style | input 元素或 textarea 元素的样式 | string / object | {} |
label a11y 已废弃 | 与原生输入框的 `aria-label` 相同 | string | — |
输入模式 2.10.3 | 与原生输入框的 `inputmode` 相同 | string | — |
事件
名称 | 描述 | 类型 |
---|---|---|
blur | 在 Input 失去焦点时触发 | Function |
focus | 在 Input 获得焦点时触发 | Function |
change | 当输入框失去焦点或用户按下回车时触发,仅当 modelValue 改变时 | Function |
input | 在 Input 值改变时触发 | Function |
clear | 在点击清除按钮清空 Input 时触发 | Function |
keydown | 当按键被按下时触发 | Function |
mouseleave | 当鼠标离开 Input 元素时触发 | Function |
mouseenter | 当鼠标进入 Input 元素时触发 | Function |
compositionstart | 当输入法开始组合时触发 | Function |
compositionupdate | 当输入法组合更新时触发 | Function |
compositionend | 当输入法组合结束时触发 | Function |
插槽
名称 | 描述 |
---|---|
prefix | 作为输入框前缀的内容,仅当 type 不为 'textarea' 时有效 |
suffix | 作为输入框后缀的内容,仅当 type 不为 'textarea' 时有效 |
prepend | 在输入框前添加的内容,仅当 type 不为 'textarea' 时有效 |
append | 在输入框后附加的内容,仅当 type 不为 'textarea' 时有效 |
暴露
名称 | 描述 | 类型 |
---|---|---|
blur | 使输入框元素失焦 | Function |
clear | 清除输入框的值 | Function |
focus | 使输入框元素聚焦 | Function |
input | HTML input 元素 | object |
ref | HTML 元素,input 或 textarea | object |
resizeTextarea | 调整文本域大小 | Function |
select | 选中 input 元素中的文本 | Function |
textarea | HTML textarea 元素 | object |
textareaStyle | textarea 的样式 | object |
isComposing 2.8.0 | 输入是否正在组合中 | object |
常见问题
为什么 ElInput 组件的宽度会被 clearable 撑开?
典型问题:#7287
附言:由于 ElInput 组件没有默认宽度,当显示 clearable 图标时,组件的宽度会被撑开,可以通过设置宽度来解决。
vue
<el-input v-model="input" clearable style="width: 200px" />