Skip to content

Input

演示

Input 跨端示例与演示

状态

基础用法

vue
<script setup lang="ts">
import { ref } from 'vue'

const value = ref('')
</script>

<template>
  <VInput v-model:value="value" placeholder="请输入内容" />
  <VInput default-value="默认内容" />
</template>

清空与字数统计

vue
<template>
  <VInput v-model:value="value" clearable placeholder="请输入内容" />
  <VInput v-model:value="value" :max-length="20" show-word-limit />
  <VInput v-model:value="value" clearable clear-trigger="always" />
</template>

格式化输入

vue
<script setup lang="ts">
const trim = (value: string) => value.trim()
const digits = (value: string) => value.replace(/\D/g, '')
</script>

<template>
  <VInput v-model:value="value" :formatter="trim" format-trigger="onBlur" />
  <VInput v-model:value="phone" :formatter="digits" :max-length="11" />
</template>

文本域

vue
<template>
  <VInput type="textarea" :rows="3" placeholder="请输入备注" />
  <VInput type="textarea" :autosize="{ minRows: 2, maxRows: 5 }" />
</template>

对齐、前后缀与状态

vue
<template>
  <VInput label="姓名" placeholder="请输入姓名" />
  <VInput prefix-icon="搜索" suffix-icon="完成" />
  <VInput align="right" value="右对齐" />
  <VInput readonly value="只读内容" />
  <VInput disabled value="禁用内容" />
  <VInput invalid error-message="请输入有效内容" />
</template>

Props

Prop类型默认值描述
valuestring | undefinedundefined受控值
defaultValuestring''非受控初始值
placeholderstring | undefinedundefined占位文本
typestring'text'输入类型,textarea 会渲染文本域
size'sm' | 'md' | 'lg''md'尺寸
align'left' | 'center' | 'right''left'输入内容对齐
disabledbooleanfalse禁用
readonlybooleanfalse只读
invalidbooleanfalse非法状态
clearablebooleanfalse展示清空按钮
clearTrigger'focus' | 'always''focus'清空按钮显示时机
maxLengthnumber | stringundefined最大输入长度
showWordLimitbooleanfalse展示字数统计
formatter(value: string) => stringundefined输入格式化函数
formatTrigger'onInput' | 'onBlur''onInput'格式化触发时机
rowsnumber | stringundefinedtextarea 行数
autosizeboolean | { minRows?: number; maxRows?: number }falsetextarea 自适应高度
labelstringundefined左侧标签
labelWidthnumber | stringundefined标签宽度
prefixIconstringundefined前缀内容
suffixIconstringundefined后缀内容
errorMessagestringundefined错误文案

Weapp 的 property 系统无法区分省略 value 与显式传入 :value="undefined";两者都会使用非受控 defaultValue。需要受控空值时请传入 value=""VTextarea 遵循同一规则。

Weapp 原生控件桥接使用显式 props:name 参与表单提交,inputId 设置内部 <input>/<textarea> 的 id,classNamecustomStyle 设置组件外层;ariaDescribedbyariaLabelledbyformfocusautoFocuscursorselectionStartselectionEndadjustPositionholdKeyboard 会转发到内部原生控件。H5 仍可直接使用原生 attrs。

Events

EventPayload描述
update:valuestring值更新
valueChangestring值变化
clearMouseEvent点击清空
focusFocusEvent聚焦
blurFocusEvent失焦

Slots

Slot描述
label自定义标签
prefix自定义前缀
suffix自定义后缀

Data Attributes

Attribute描述
data-size当前尺寸
data-align当前对齐方式
data-clearable是否允许清空
data-focused是否聚焦
data-invalid是否非法
data-readonly是否只读
data-disabled是否禁用