Form 表单
用于收集、校验和提交数据,支持水平、垂直、行内布局,支持自定义校验、动态表单项、联动等。
综合示例
包含多种控件与校验规则的完整表单。
垂直布局
layout='vertical',标签在控件上方。
行内表单
layout='inline',适用于搜索栏。
表单尺寸
size 设置整体尺寸(xs / sm / md / lg)。
size = "xs"
size = "sm"
size = "md"
size = "lg"
禁用表单
disabled 禁用整个表单。
标签对齐与宽度
label-width 统一设置标签宽度,label-align 控制文本对齐。
自定义校验
validator 函数实现自定义校验逻辑。
动态增减表单项
动态管理表单项,支持增加和删除。
表单联动
根据字段值动态显示/隐藏表单项。
校验触发时机
validate-trigger 控制全局触发时机,也可在规则中单独设置 trigger。
帮助提示与额外内容
help 和 extra 属性显示提示或说明。
隐藏校验反馈
show-feedback 隐藏校验错误信息。
Form Props
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
model | object | - | 表单数据对象(必填) |
rules | Record<string, FormRule | FormRule[]> | {} | 校验规则 |
layout | 'horizontal' | 'vertical' | 'inline' | 'horizontal' | 表单布局 |
labelPosition | 'left' | 'right' | 'top' | 'right' | 标签位置 |
labelWidth | string | number | - | 统一设置标签宽度 |
labelAlign | 'left' | 'right' | - | 标签文本对齐方式 |
size | 'xs' | 'sm' | 'md' | 'lg' | 'md' | 控件尺寸 |
disabled | boolean | false | 是否禁用全部控件 |
colon | boolean | false | 标签后是否显示冒号 |
showFeedback | boolean | true | 是否显示校验反馈信息 |
validateTrigger | 'change' | 'blur' | 'change' | 全局校验触发时机 |
FormItem Props
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
field | string | - | 字段名(对应 model 属性路径),支持 a.b.c |
label | string | - | 标签文本 |
labelWidth | string | number | - | 单独设置标签宽度,优先于 Form |
labelAlign | 'left' | 'right' | - | 单独设置标签对齐,优先于 Form |
rules | FormRule | FormRule[] | - | 校验规则,优先于 Form 的 rules |
required | boolean | false | 是否必填(视觉标记) |
disabled | boolean | false | 是否禁用 |
help | string | - | 帮助提示文本 |
extra | string | - | 额外内容文本 |
validateTrigger | 'change' | 'blur' | - | 校验触发时机 |
validateStatus | 'success' | 'warning' | 'error' | 'validating' | - | 校验状态 |
showFeedback | boolean | - | 是否显示校验反馈,优先于 Form |
hideLabel | boolean | false | 是否隐藏标签 |
hideAsterisk | boolean | false | 是否隐藏必填星号 |
FormRule 类型
| 属性 | 类型 | 说明 |
|---|---|---|
type | 'string' | 'number' | 'boolean' | 'url' | 'email' | 'array' | 校验类型 |
required | boolean | 是否必填 |
message | string | 校验失败提示信息 |
min | number | 最小长度/最小值 |
max | number | 最大长度/最大值 |
len | number | 精确长度 |
pattern | RegExp | 正则校验 |
validator | (value: any, callback: (error?: string) => void) => void | 自定义校验函数 |
trigger | 'change' | 'blur' | ('change' | 'blur')[] | 校验触发时机 |
Form Events
| 事件名 | 参数 | 说明 |
|---|---|---|
submit | (e: Event) | 表单提交 |
submit-success | (values: object) | 校验成功后触发 |
submit-fail | (errors: Record<string, string[]>) | 校验失败后触发 |
validate | (field: string, value: any, errors: string[] | undefined) | 任意字段校验结束后触发 |
Form Methods
| 方法名 | 参数 | 说明 |
|---|---|---|
validate | (callback?) => Promise<errors | undefined> | 校验整个表单 |
validateField | (field: string | string[], callback?) => Promise<errors> | 校验指定字段 |
resetFields | (field?: string | string[]) | 重置字段值并清除校验 |
clearValidate | (field?: string | string[]) | 清除校验状态 |
FormItem Slots
| 插槽名 | 说明 |
|---|---|
default | 表单控件内容 |
label | 自定义标签 |
error | 自定义错误信息,参数 { errors } |
help | 自定义帮助提示 |
extra | 自定义额外内容 |