Form 表单

表单是web应用的核心之一.

element-ultra的表单在原来element-plus的基础上做了大量的改动.

  1. 你无需在你的表单中加入el-form-item元素来包裹表单控件
  2. 借助useFormModel方法, 你无需分开定义规则和表单值
  3. 内部使用el-grid组件来完成自适应布局
  4. 校验方法移到了form中, 这意味着内存的节省
  5. 不再依赖async-validator的校验
  6. 现在组件在被销毁时(通过v-if, v-else),会自动清空绑定的值
  7. useFormModel方法支持第二个参数传入一个getters来自动收集副作用, 详情查看示例
  8. (2022-09-14)现在form支持嵌套, 以便支持后端不同的数据结构

比较完整的表单示例

Form 组件允许你验证用户的输入是否符合规范,来帮助你找到和纠正错误。 该示例很完整, 包含label-position控制, size尺寸控制.

数字类型验证

TIP

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

Form 属性

属性说明类型可选值默认值
data表单数据对象object
rules表单验证规则object
inline行内表单模式booleanfalse
label-position表单域标签的位置, 如果值为 left 或者 right 时,则需要设置 label-widthstringleft / right / topright
label-width表单域标签的宽度,例如 '50px'。 作为 Form 直接子元素的 form-item 会继承该值。 支持 autostring / number
label-suffix表单域标签的后缀string
hide-required-asterisk是否显示必填字段的标签旁边的红色星号booleanfalse
show-message是否显示校验错误信息booleantrue
inline-message是否以行内形式展示校验信息booleanfalse
status-icon是否在输入框中显示校验结果反馈图标booleanfalse
validate-on-rule-change是否在 rules 属性改变后立即触发一次验证booleantrue
size用于控制该表单内组件的尺寸stringdefault / small / large
disabled是否禁用该表单内的所有组件。 若设置为 true,则表单内组件上的 disabled 属性不再生效booleanfalse

Form 方法

方法名说明回调参数
validate对整个表单作验证。 参数为一个回调函数。 验证表单后,回调函数会包含两个参数:一个布尔值,表示表单验证是否通过;一个对象,包含所有未通过验证的字段。 若不传入回调函数,则会返回一个 promiseFunction(callback: Function(boolean, object))
validateField对部分表单字段进行校验的方法Function(props: string | array, callback: Function(errorMessage: string))
resetFields对整个表单进行重置,将所有字段值重置为初始值并移除校验结果
scrollToField滚动到指定表单字段Function(prop: string)
clearValidate清理指定字段的表单验证信息。 参数是一个或多个需要清除验证信息的表单属性名。 如果省略了参数,将清除所有字段的验证信息。Function(props: string | array)

Form 事件

事件名称说明回调参数
validate任一表单项被校验后触发被校验的表单项 prop 值,校验是否通过,错误消息(如果存在)

Form 插槽

插槽名说明子标签
存放所有的 form-item 内容Form-Item

FormItem 属性

属性说明类型可选值默认值
prop表单域 model 字段, 在使用 validate、resetFields 方法的情况下,该属性是必填的string传入 Form 组件的 model 中的字段
label标签string
label-width表单域标签的宽度,例如 '50px'。 支持 autostring / number
required是否必填,如不设置,则会根据校验规则自动生成booleanfalse
rules表单验证规则, 具体配置见下表, 更多内容参考async-validatorobject / array
error表单域验证错误信息, 设置该值会使表单验证状态变为 error,并显示该错误信息string
show-message是否显示校验错误信息booleantrue
inline-message以行内形式展示校验信息booleanfalse
size控制组件在此表单项中的大小stringmedium / small / mini

Rules

属性说明类型可选值默认值
trigger触发校验方式stringblur / change

Form-Item 插槽

插槽名说明
Form Item 的内容
label标签上显示的自定义内容。 自定义标签,参数为
error自定义内容以显示验证消息。 参数是

Form-Item 方法

方法名说明参数
resetField对该表单项进行重置,将其值重置为初始值并移除校验结果
clearValidate移除该字段的验证状态