Input 输入框
通过鼠标或键盘输入数据。
基础用法
禁用状态
通过 `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` 来分发前置或后置到 Input 的元素。
尺寸
添加 `size` 属性来改变输入框的大小。除了默认尺寸外,还有两种其他选项:`large`, `small`。
长度限制
输入框的 `maxlength` 和 `minlength` 属性,它们声明了用户可输入字符数的限制。“字符数”是使用 JavaScript 字符串长度来测量的。为文本或文本域类型的输入框设置 `maxlength` 属性可以限制输入值的长度,同时通过设置 `show-word-limit` 为 `true` 来显示字数统计。
API
属性
名称 | 描述 | 类型 | 默认值 |
---|---|---|---|
type | 输入框的类型 | string 原生输入框类型 | 文本 |
model-value / v-model | 绑定值 | string / number | — |
最大长度 | 与原生输入框的 `maxlength` 相同 | string / number | — |
最小长度 | 与原生输入框的 `minlength` 相同 | string / number | — |
显示字数限制 | 是否显示字数统计,仅在 `type` 为 'text' 或 'textarea' 时有效 | boolean | false |
占位符 | 输入框的占位符 | string | — |
可清空 | 是否显示清空按钮,仅在 `type` 不为 'textarea' 时有效 | boolean | false |
清除图标 2.11.0 | 自定义清除图标组件 | string / object | CircleClose |
格式化程序 | 指定输入框中显示值的格式。(仅在 `type` 为 'text' 时有效) | Function | — |
解析器 | 指定从格式化输入中提取的值。(仅在 `type` 为 'text' 时有效) | Function | — |
显示密码 | 是否显示可切换的密码输入框 | 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 | 与原生输入框的 `max` 相同 | — | — |
min | 与原生输入框的 `min` 相同 | — | — |
步长 | 与原生输入框的 `step` 相同 | — | — |
调整大小 | 控制可调整大小性 | 枚举 | — |
自动聚焦 | 与原生输入框的 `autofocus` 相同 | boolean | false |
表单 | 与原生输入框的 `form` 相同 | string | — |
aria-label a11y 2.7.2 | 与原生输入框的 `aria-label` 相同 | string | — |
tabindex | 输入框的 tabindex | string / number | — |
validate-event | 是否触发表单验证 | boolean | true |
输入框样式 | 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 | 作为 Input 前缀的内容,仅在 `type` 不为 'textarea' 时有效 |
suffix | 作为 Input 后缀的内容,仅在 `type` 不为 'textarea' 时有效 |
prepend | 在 Input 前面追加的内容,仅在 `type` 不为 'textarea' 时有效 |
append | 在 Input 后面追加的内容,仅在 `type` 不为 'textarea' 时有效 |
暴露
名称 | 描述 | 类型 |
---|---|---|
blur | 使输入框元素失焦 | Function |
clear | 清空输入框的值 | Function |
focus | 使输入框元素聚焦 | Function |
input | HTML input 元素 | object |
ref | HTML 元素,input 或 textarea | object |
resizeTextarea | 调整 textarea 大小 | Function |
select | 选中输入框元素中的文本 | Function |
textarea | HTML textarea 元素 | object |
textareaStyle | textarea 的样式 | object |
isComposing 2.8.0 | 输入框是否正在输入法组合中 | object |
常见问题
为什么 ElInput 组件的宽度会被 clearable 撑开?
典型 issue: #7287
PS: 由于 ElInput 组件没有默认宽度,当显示 clearable 图标时,组件宽度会被撑开,可以通过设置宽度来解决。
<el-input v-model="input" clearable style="width: 200px" />