Skip to content

Form表单

基础用法

按钮导致的表单提交

Form 组件下存在 button 时,点击 button 会默认触发表单验证

这并不是 bug,这是HTML的标准行为,button 的默认type就是 submit

不想触发该行为的话将 button 的 type 设置了 button 即可

排列方向

通过修改 Formalign 属性可以实现,整体的水平或者垂直排列方式

考虑到一些情况下可能需要更为灵活的排列方式 故此 FormItem 也可以设置 align 属性来修改对齐方式,该项优先级更大

两者的 align 可选值有 horizontal vertical ,默认为 horizontal

使用yup验证

Form 组件由 vee-validateyup 封装而成,yup 作为其认证库

组件内部封装了一个简单的 yup 全局实例,其代码见 仓库源码

借此,用户可以自行选择如何使用 yup,如果需要更小的打包体积建议使用按需从 yup 导入,即不要使用 import * as yup from 'yup' 这种方式去使用 yup

同理用户可以自行定义一系列基础配置,比如基础验证消息中文翻译,i18n

下面将演示如何去使用 yup ,以及如何实现一个简单的配置

例子

验证表单(注册示例)

通过 FormRefvalidate 方法校验整个表单,返回一个 Promise。校验通过时进入 then 回调,校验失败时进入 catch 回调。

校验失败后,表单 自动展示对应的错误提示效果。

验证单个字段

通过 FormRefvalidateField 方法校验指定字段,返回一个 Promise。校验通过时进入 then 回调,校验失败时进入 catch 回调,并可获取错误信息。

该方法只校验单个字段,失败时 不会 自动展示表单错误提示。

API

Attributes

Form

属性值说明类型具体类型默认值
schemayup验证规则objectGenericObject-
label-widthlabel宽度string-'60px'
align对齐方向enum['horizontal','vertical']'horizontal'

FormItem

属性值说明类型具体类型默认值
nameschema的keystring--
labellabel名string--
trigger错误信息显示时机enum['change','blur','input']'blur'
align对齐方向enum['horizontal','vertical']'horizontal'

Slots

Expose

插槽名说明
default默认插槽

FormItem

插槽名说明
default默认插槽

Form

方法名说明类型具体类型
validate验证整个表单Function() => Promise<void>
validateField验证某个字段Function(fieldName: string) => Promise<void>