Input 输入框

通过鼠标或键盘输入字符

WARNING

Input 为受控组件,它 总会显示 Vue 绑定值

在正常情况下,input 的输入事件应该被正常响应。 它的处理程序应该更新组件的绑定值 (或使用 v-model)。 否则,输入框的值将不会改变。

不支持 v-model 修饰符。

基础用法

基础样式
禁用样式:通过 disabled 属性指定是否禁用 input 组件
四种尺寸

🎉 一键清空、自定义删除按钮

使用 clearable 属性即可得到一个可一键清空的输入框;使用 clear-icon 属性即可自定义删除按钮。

🎉 轻量化输入框

使用 plain 属性即可得到一个轻量化输入框。

🎉 四种状态

使用 status 为输入框添加状态,使用 tips 为状态添加提示信息。

校验通过文本提示
校验存在严重问题文本提示
校验存在严重问题文本提示
校验不通过文本提示
校验通过文本提示
校验存在严重问题文本提示
校验存在严重问题文本提示
校验不通过文本提示

格式化

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

密码框

使用 show-password 属性即可得到一个可切换显示隐藏的密码框

🎉 带图标/文字的输入框

带有图标标记输入类型

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

使用属性
使用插槽
删除位置
前缀后缀
前缀后缀

文本域

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

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

自适应文本域

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

复合型输入框

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

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

Http://
.com
Select
Select

输入长度限制

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

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

计数图形 1.2.5

设置 count-graphemes 以自定义文本长度的计算方式。如果设置了该属性,则不会使用原生的 maxlengthminlength

组件使用 Intl.Segmenter(Chrome 87+、Firefox 125+、Safari 14.1+)进行正确的字素聚类;旧版浏览器回退到基于码点的 Array.from() 迭代。

0 / 10
0 / 20

API

Attributes

参数说明类型默认值Version
type类型string原生 input 类型text
model-value / v-model绑定值string / number
model-modifiers 1.0.6v-model 修饰符,参考 Vue modifiersobject
maxlength同原生 maxlength 属性string / number
minlength原生属性,最小输入长度string / number
show-word-limit是否显示统计字数, 只在 type 为 'text' 或 'textarea' 的时候生效booleanfalse
word-limit-position 1.0.6字数统计的位置,仅当 show-word-limittrue 时生效enum"inside"
count-graphemes 1.2.5自定义函数用于计算文本长度(字形数);设置后将绕过原生的 maxlength / minlength 约束Function
placeholder输入框占位文本string
clearable是否显示清除按钮,只有当 type 不是 textarea 时生效booleanfalse
formatter指定输入值的格式。(只有当 type 是"text"时才能工作)Function
parser指定从格式化器输入中提取的值。(仅当 type 是"text"时才起作用)Function
show-password是否显示切换密码图标booleanfalse
disabled是否禁用booleanfalse
size输入框尺寸,只在 type 不为 'textarea' 时有效enum
prefix-icon自定义前缀图标string / Component
suffix-icon自定义后缀图标string / Component
textarea-height 1.0.11输入框高度,仅 type 为 'textarea' 时生效number-
rows输入框行数,仅 type 为 'textarea' 时有效number2
autosizetextarea 高度是否自适应,仅 type 为 'textarea' 时生效。 可以接受一个对象,比如: { minRows: 2, maxRows: 6 }boolean / objectfalse
autocomplete原生 autocomplete 属性stringoff
name等价于原生 input name 属性string
readonly原生 readonly 属性,是否只读booleanfalse
max原生 max 属性,设置最大值
min原生属性,设置最小值
step原生属性,设置输入字段的合法数字间隔
resize控制是否能被用户缩放enum
autofocus原生属性,自动获取焦点booleanfalse
form原生属性string
aria-label a11y等价于原生 input aria-label 属性string
tabindex输入框的 tabindexstring / number
validate-event输入时是否触发表单的校验booleantrue
input-styleinput 元素或 textarea 元素的 stylestring / object{}
label a11y deprecated等价于原生 input aria-label 属性string
clear-icon自定义清除图标string / objectCircleCloseFilledV0.0.8
status输入框状态enum
tips输入框状态提示信息string
prepend-clear 1.1.5是否在输入框前置显示清除按钮booleanfalse
inputmode原生 inputmode 属性,控制虚拟键盘类型enum
plain是否启用轻量化样式booleanfalse

Events

事件名说明类型
blur当选择器的输入框失去焦点时触发Function
focus当选择器的输入框获得焦点时触发Function
change仅当 modelValue 改变时,当输入框失去焦点或用户按 Enter 时触发Function
input在 Input 值改变时触发Function
clear在点击由 clearable 属性生成的清空按钮时触发Function
keydown在输入框按下按键时触发Function
mouseenter当鼠标进入输入框时触发Function
mouseleave当鼠标离开输入框时触发Function
compositionstart输入法开始输入时触发Function
compositionupdate输入法输入改变时触发Function
compositionend输入法输入完成时触发Function

Slots

插槽名说明
prefix输入框头部内容,只对非 type="textarea" 有效
suffix输入框尾部内容,只对非 type="textarea" 有效
prepend输入框前置内容,只对非 type="textarea" 有效
append输入框后置内容,只对非 type="textarea" 有效
password-icon 1.2.5作为密码图标的内容,仅在 show-passwordtrue 时生效,作用域变量为 { visible: boolean }

Exposes

名称说明类型
blur使 input 失去焦点Function
clear清除 input 值Function
focus使 input 获取焦点Function
inputInput HTML 元素object
refHTML 元素 input 或 textareaobject
resizeTextarea改变 textarea 大小Function
select选中 input 中的文字Function
textareaHTML textarea 元素object
textareaStyletextarea 的样式object
isComposing是否是输入 composing 状态object
passwordVisible密码是否可见object

常见问题

WInput 组件的宽度为什么在设置了 clearable 时会发生变化

PS: 由于 WInput 组件没有默认宽度,当显示 clearable 图标时, 组件的宽度将被撑开,可以通过设置固定宽度属性来解决。

vue
<w-input v-model="input" clearable style="width: 200px" />

Copyright 2025 Winning Health 版权所有