Form 表单

表单包含 input、radio、select、checkbox 等需要用户输入的组件。使用表单,您可以收集、验证和提交数据。

TIP

Form 组件已经从 2. x 的 Float 布局升级为 Flex 布局。

典型表单

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

在每一个 form 组件中,你需要一个 form-item 字段作为输入项的容器,用于获取值与验证值。

TIP

W3C 标准定义:

当一个表单中只有一个单行文本输入字段时, 浏览器应当将在此字段中按下 Enter (回车键)的行为视为提交表单的请求。 如果希望阻止这一默认行为,可以在 <el-form> 标签上添加 @submit.prevent。

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

行内表单

当垂直方向空间受限且表单较简单时,可以在一行内放置表单。

通过设置 inline 属性为 true 可以让表单域变为行内的表单域。

Approved by
Activity zone
Activity zone
Activity time

对齐方式

根据你们的设计情况,来选择最佳的标签对齐方式。

您可以分别设置 el-form-item 的label-position 2.7.7. 如果值为空, 则会使用 el-form的label-position。

通过设置 label-position 属性可以改变表单域标签的位置,可选值为 top、left, 当设为 top 时标签会置于表单域的顶部

Form Align
Form Item Align
Name
Activity zone
Activity form

表单校验

Form 组件允许你验证用户的输入是否符合规范,来帮助你找到和纠正错误。

Form 组件提供了表单验证的功能,只需为 rules 属性传入约定的验证规则,并将 form-Item 的 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属性为输入框添加了表示校验结果的反馈图标。

TIP

自定义的校验回调函数必须被调用。校验规则参见 async-validator

添加/删除表单项

除了一次通过表单组件上的所有验证规则外. 您也可以动态地通过验证规则或删除单个表单字段的规则。

Email
Domain0

数字类型验证

数字类型的验证需要在 v-model 处加上 .number 的修饰符,这是 Vue 自身提供的用于将绑定值转化为 number 类型的修饰符。

TIP

当一个 el-form-item 嵌套在另一个 el-form-item 中时,其标签宽度将为 0。如果需要可以为 el-form-item 单独设置 label-width 属性。

age

尺寸控制

表单中的所有子组件都继承了该表单的 size 属性。同样,form-item 也有一个 size 属性。

如果希望某个表单项或某个表单组件的尺寸不同于 Form 上的 size 属性,直接为这个表单项或表单组件设置自己的 size 属性即可。


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

无障碍

当在 el-form-item 内只有一个输入框(或相关的控制部件,如选择或复选框),表单项的标签将自动附加在那个输入框上。如果 el-form-item内有多个 input,则表单项会被设置成 WAI-ARIA 组 的 role。在这种情况下,需要手动给每个 input 指定访问标签。

Full Name
Your Information

Form API

Form Attributes

属性名说明类型默认值
model表单数据对象object—
rules表单校验规则object—
inline是否行内表单booleanfalse
label-position标签位置,取 left / right 时需同时设置 label-widthenumright
label-width标签宽度,所有直接子 FormItem 继承该值,支持 autostring / number''
label-suffix标签后缀string''
hide-required-asterisk是否隐藏必填字段标签旁的红色星号booleanfalse
require-asterisk-position星号位置enumleft
show-message是否显示错误信息booleantrue
inline-message错误信息是否显示为行内样式booleanfalse
status-icon是否显示校验结果图标booleanfalse
validate-on-rule-changerules 变化时是否立即触发校验booleantrue
size表单内组件尺寸enum—
disabled是否禁用表单内全部组件booleanfalse
scroll-to-error校验失败时是否滚动到第一个错误项booleanfalse
scroll-into-view-optionsscrollIntoView 的参数object / booleantrue
onModelChangeReact 特有:resetFields 还原后的整个 model 通过该回调交回使用方Function—

Form Events

事件名说明参数
onValidate单个表单项校验完成后触发Function

Form Slots

插槽名说明React 写法
default自定义默认内容children

Form Exposes

方法名说明类型
validate校验整个表单,接收回调或返回 PromiseFunction
validateField校验指定字段Function
resetFields重置指定字段并移除校验结果Function
clearValidate清除指定字段的校验信息Function
scrollToField滚动到指定字段Function
getField获取某个字段的上下文Function
fields全部字段上下文array
setInitialValues设置字段初值,resetFields 会还原到这些值Function

FormItem API

FormItem Attributes

属性名说明类型默认值
propmodel 中的字段路径,可以是字符串或路径数组;校验与重置时必填string / array—
label标签文本string—
label-position标签位置,省略时继承 Formenum''
label-width标签宽度,支持 autostring / number—
required是否必填,省略时由校验规则决定booleanundefined
rules校验规则object / array—
error手动设置错误信息,设置后立即显示该错误;清空后恢复string—
show-message是否显示错误信息booleantrue
inline-message错误信息是否显示为行内样式booleanundefined
size表单项内组件尺寸enum—
for同原生 label 的 forstring—
html-forfor 的 React 惯用写法,与 for 等价string—
validate-status校验状态enum—

FormItemRule

属性名说明类型默认值
trigger校验触发时机;省略时任意 trigger 都会执行enum / array—

FormItem Events

无。

FormItem Slots

插槽名说明React 写法
default表单项内容children
label自定义标签内容,参数为当前标签文本labelSlot: (label) => ReactNode
error自定义错误内容,参数为错误信息errorSlot: (error) => ReactNode

FormItem Exposes

方法名说明类型
size表单项当前尺寸string
validateMessage当前校验错误信息string
validateState当前校验状态enum
validate校验本项Function
resetField重置本项并移除校验结果Function
clearValidate清除本项校验状态Function
setInitialValue设置本项初值,resetField 会还原到该值Function