• Field 输入框
    • 介绍
    • 引入
  • 代码演示
    • 基础用法
    • 自定义类型
    • 禁用输入框
    • 错误提示
    • 高度自适应
    • 插入按钮
  • API
    • Props
    • Events
    • 方法
    • Slots

    Field 输入框

    介绍

    表单中的输入框组件,支持inputtextarea两种类型

    引入

    1. import { Field } from 'vant';
    2. Vue.use(Field);

    代码演示

    基础用法

    通过 v-model 绑定输入框的值

    1. <van-cell-group>
    2. <van-field v-model="value" placeholder="请输入用户名" />
    3. </van-cell-group>

    自定义类型

    根据type属性定义不同类型的输入框

    1. <van-cell-group>
    2. <van-field
    3. v-model="username"
    4. required
    5. clearable
    6. label="用户名"
    7. right-icon="question-o"
    8. placeholder="请输入用户名"
    9. @click-right-icon="$toast('question')"
    10. />
    11. <van-field
    12. v-model="password"
    13. type="password"
    14. label="密码"
    15. placeholder="请输入密码"
    16. required
    17. />
    18. </van-cell-group>

    禁用输入框

    1. <van-cell-group>
    2. <van-field
    3. value="输入框已禁用"
    4. label="用户名"
    5. left-icon="contact"
    6. disabled
    7. />
    8. </van-cell-group>

    错误提示

    通过error或者error-message属性增加对应的错误提示

    1. <van-cell-group>
    2. <van-field
    3. v-model="username"
    4. label="用户名"
    5. placeholder="请输入用户名"
    6. error
    7. />
    8. <van-field
    9. v-model="phone"
    10. label="手机号"
    11. placeholder="请输入手机号"
    12. error-message="手机号格式错误"
    13. />
    14. </van-cell-group>

    高度自适应

    对于 textarea,可以通过autosize属性设置高度自适应

    1. <van-cell-group>
    2. <van-field
    3. v-model="message"
    4. label="留言"
    5. type="textarea"
    6. placeholder="请输入留言"
    7. rows="1"
    8. autosize
    9. />
    10. </van-cell-group>

    插入按钮

    通过 button 插槽可以在输入框尾部插入按钮

    1. <van-cell-group>
    2. <van-field
    3. v-model="sms"
    4. center
    5. clearable
    6. label="短信验证码"
    7. placeholder="请输入短信验证码"
    8. >
    9. <van-button slot="button" size="small" type="primary">发送验证码</van-button>
    10. </van-field>
    11. </van-cell-group>

    API

    Props

    Field 默认支持 Input 标签所有的原生属性,比如 maxlengthplaceholderautofocus

    参数说明类型默认值版本
    label输入框左侧文本String--
    value当前输入的值String | Number--
    type可设置为原生类型, 如 number tel textareaStringtext-
    size大小,可选值为 largeString-1.6.9
    border是否显示内边框Booleantrue-
    disabled是否禁用输入框Booleanfalse-
    readonly是否只读Booleanfalse-
    required是否显示表单必填星号Booleanfalse-
    clearable是否启用清除控件Booleanfalse1.1.9
    clickable是否开启点击反馈Booleanfalse2.0.0
    is-link是否展示右侧箭头并开启点击反馈Booleanfalse1.1.10
    error是否将输入内容标红Booleanfalse-
    error-message底部错误提示文案,为空时不展示String''-
    label-class左侧文本额外类名any-2.0.0
    label-width左侧文本宽度,可指定单位,默认为 pxString | Number90px1.6.17
    label-align左侧文本对齐方式,可选值为 center rightStringleft1.1.10
    input-align输入框内容对齐方式,可选值为 center rightStringleft1.1.10
    error-message-align错误提示文案对齐方式,可选值为 center rightStringleft1.6.11
    autosize自适应内容高度,只对 textarea 有效,可传入对象,如 { maxHeight: 100, minHeight: 50 },单位为 pxBoolean | Objectfalse1.0.0
    left-icon输入框左侧图标名称或图片链接,可选值见 Icon 组件String-1.5.7
    right-icon输入框尾部图标名称或图片链接,可选值见 Icon 组件String-1.5.7

    Events

    Field 默认支持 Input 标签所有的原生事件,如 focusblurkeypress

    事件说明回调参数
    input输入框内容变化时触发-
    click点击时触发-
    clear点击清除按钮后触发-
    click-left-icon点击头部图标时触发-
    click-right-icon点击尾部图标时触发-

    方法

    通过 ref 可以获取到 field 实例并调用实例方法

    方法名参数返回值介绍
    focus--获取输入框焦点
    blur--取消输入框焦点

    Slots

    名称说明
    label自定义输入框标签
    input自定义输入框,使用此插槽后,与输入框相关的属性和事件将失效
    left-icon自定义输入框头部图标
    right-icon自定义输入框尾部图标
    button自定义输入框尾部按钮

    Field 输入框 - 图1