Skip to content

Form 表单 ​

基于 Element Plus Form 增强的表单组件。

表单由input、 radio、 select、 checkbox等控件组成,用以收集、校验、提交数据。

TIP

该组件已升级为弹性布局(flex),替代了旧的浮动布局(float)。

基本用法 ​

最基础的表单包括各种输入表单项,如input、 select、 radio、 checkbox等。

在每一个 Form 组件中,需要使用 bk-form-item 组件作为输入项的容器,也可通过 items 属性以配置化方式定义表单结构。每个表单项支持配置 prop、label 及相关字段属性等选项。

Activity name
Activity zone
please select your zone
Activity time
-
Instant delivery
Activity type
Resources
Activity form
Activity name
Activity zone
please select your zone
Activity time
-
Instant delivery
Activity type
Resources
Activity form

提示

W3C 规范中提到:

当表单中只有一个单行文本输入框时,用户代理应将该字段中的回车视为提交表单的请求。

如需阻止该行为,可在 <bk-form> 上添加 @submit.prevent。

多列布局 ​

当垂直空间受限且表单结构较简单时,可将表单项横向排列。

设置 col-num 属性指定表单布局的列数。

Approved by
Activity zone
Activity zone
Activity time

标签对齐方式 ​

可根据设计需求,选择不同的标签对齐方式。

可在单个表单项中单独设置 label-position,若未设置,则继承 bk-form 的 label-position 配置。

label-position 属性用于设置标签对齐方式,可选值为 top 或 left。设置为 top 时,标签会显示在表单项的顶部。

Form Align
Form Item Align
Name
Activity zone
Activity form

表单校验 ​

表单组件支持数据校验功能,帮助快速发现并修正输入错误。

只需为 bk-form 组件添加 rules 属性并传入校验规则,并将表单项的 prop 属性设置为需要验证的特殊键值即可。校验规则参见 async-validator。

Activity name
Activity zone
Activity zone
Activity count
Activity count
Activity time
-
Instant delivery
Activity location
Activity type
Resources
Activity form

自定义校验规则 ​

本示例展示如何自定义校验规则,实现双密码一致性验证。

此处使用 status-icon 属性,通过图标直观展示校验结果。

提示

自定义校验的回调函数必须被调用,否则会导致校验流程卡死。高级用法参考 async-validator。

动态增减表单项 ​

除了在表单组件上一次性传入所有校验规则外,也可针对单个表单项动态添加或删除校验规则。

Email
Domain0

数字类型校验 ​

数字类型校验需要在输入框的 v-model 绑定上添加 .number 修饰符,该修饰符由 Vue 提供,用于将输入的字符串值转换为数字类型。

age

TIP

当一个表单项嵌套在另一个表单项中时,其标签宽度会被设为 0。如有需要,可在该嵌套的表单项上手动设置 label-width。

尺寸控制 ​

表单内的所有组件会默认继承表单的 size 属性,表单项也单独提供 size 属性用于控制尺寸。

若不想让某个组件继承表单/表单项的尺寸,可单独为该组件设置 size 属性覆盖继承值。


Activity name
Activity zone
please select your zone
Activity time
-
Activity type
Resources

无障碍访问 ​

当表单项内仅包含单个输入控件(如输入框、选择器、复选框等)时,表单项的标签会自动关联到该输入控件。若包含多个输入控件,表单项会被赋予 WAI-ARIA 的 group 角色,此时需要开发者自行为每个输入控件添加辅助标签。

Full Name
Your Information

Form API ​

Form 属性 ​

属性名说明类型默认值
items表单项配置数组,每个项可指定类型、组件属性(componentProps)、子项等array—
colNum多列表单布局的列数number1
Element Plus Form 原生属性
属性名说明类型默认值
model表单数据对象object—
rules表单校验规则object—
inline是否行内表单(推荐使用 col-num 属性替代)booleanfalse
label-position标签的位置,可选值为 left / right / top,设置为 left 或 right 时,需同时设置 label-widthenumright
label-width标签的宽度,例如 50px,支持 auto,所有直接子表单项会继承该值string / number''
label-suffix标签的后缀文本string''
hide-required-asterisk是否隐藏必填字段标签旁的红色星号booleanfalse
require-asterisk-position星号的位置,可选值为 left / rightenumleft
show-message是否显示校验错误信息booleantrue
inline-message是否将校验错误信息以行内形式展示booleanfalse
status-icon是否显示校验状态图标booleanfalse
validate-on-rule-change是否在 rules 属性变化时触发校验booleantrue
size控制表单内组件的尺寸,可选值为 large / default / smallenum—
disabled是否禁用表单内所有组件,设置为 true 时会覆盖内部组件的 disabled 属性booleanfalse
scroll-to-error校验失败时,是否自动滚动到第一个错误表单项booleanfalse
scroll-into-view-options校验失败滚动到错误项时,传递给 scrollIntoView 的配置项,参考 scrollIntoViewobject / booleantrue

FormItem ​

继承所有 Element Plus FormItemProps 属性,并新增以下增强功能:

属性名说明类型默认值
type required表单项组件类型(例如:'input'、'select'、'radio')string—
componentProps传递给底层组件的额外属性object—
children用于复杂布局的嵌套表单项配置array—

Form 事件 ​

Element Plus Form 原生事件
事件名说明类型
validate表单项校验触发的事件Function

Form 插槽 ​

Element Plus Form 原生插槽
插槽名说明子标签
default自定义默认内容FormItem

Form Exposes ​

Element Plus Form Exposes
名称说明类型
validate校验整个表单,接收回调函数或返回 PromiseFunction
validateField校验指定的表单项Function
resetFields重置指定的表单项,清除校验结果Function
scrollToField滚动到指定的表单项Function
clearValidate清除所有或指定表单项的校验提示Function
fields获取所有表单项的上下文array
getField获取指定表单项的上下文Function

FormItem API ​

FormItem 属性 ​

Element Plus FormItem 原生属性
属性名说明类型默认值
prop表单模型字段,支持嵌套路径(如 a.b.0 或 ['a', 'b', '0']),在使用 validate / resetFields 方法时,该属性是必填的string / string[]—
label标签文本string—
label-position标签的位置,可选值为 left / right / top,设置为 left 或 right 时需指定 label-width,默认继承表单的 label-positionenum''
label-width标签的宽度,例如 50px,支持 autostring / number—
required是否为必填字段,若不设置,则由校验规则自动判断boolean—
rules表单项的校验规则,参考 FormItemRule,高级用法参考 async-validatorobject—
error手动设置表单项的错误提示信息,设置后会立即触发校验错误状态并显示该信息string—
show-message是否显示校验错误信息booleantrue
inline-message是否以行内形式展示校验错误信息booleanfalse
size控制表单项内组件的尺寸,可选值为 large / default / smallenum—
for原生 label 标签的 for 属性,用于关联表单控件string—
validate-status表单项的校验状态,可选值为 error / validating / success / ''enum—

FormItemRule ​

Element Plus FormItemRule 原生配置
名称说明类型默认值
trigger校验触发方式enum—

提示

若不想通过输入事件触发校验,可在对应的输入类组件(<el-input>、<el-radio>、<el-select> 等)上设置 validate-event 为 false。

FormItem 插槽 ​

Element Plus FormItem 原生插槽
插槽名说明类型
default表单项的内容—
label自定义标签内容object
error自定义校验错误提示object

FormItem Exposes ​

Element Plus FormItem Exposes
名称说明类型
size表单项的尺寸object
validateMessage校验提示信息object
validateState校验状态object
validate校验当前表单项Function
resetField重置当前表单项,清除校验Function
clearValidate清除当前表单项的校验状态Function