2020-08-27 17:18:57 +08:00

18 KiB
Raw Blame History

pageClass
comp-page-class

Form 表单

概述

具有数据收集、校验和提交功能的表单,包含复选框、单选框、输入框、下拉选择框等元素。

代码示例

北京市 上海市 深圳市 杭州市 南京市 重庆市 男 女 吃饭 睡觉 跑步 提交 取消

在 Wb-form 内,每个表单域由 Form-item 组成可包含的控件有Input、Radio、Checkbox、Switch、Select、InputDatePicker、TimePicker。

给 Form-item 设置属性 label 可以显示表单域的标签

北京市 上海市 深圳市 杭州市 南京市 重庆市 北京市 上海市 深圳市 杭州市 南京市 重庆市

query模式下FromItem上下间隔会缩小执行校验但是不提示校验错误信息。

提交 重置 增加 减少

当需要动态维护 Form-item 时,可以给 Form-item 设置属性 rule 来单独为该域做验证。

设置属性 label-position控制表单项描述的位置left 为左对齐right 为右对齐top 置于表单组件头部。

设置属性 label-width控制表单项描述的宽度默认80。

Wb-form 和 Form-item 都可以设置 label-position 和 label-width Form-item的优先级高于Wb-form。

是 否 北京市 上海市 深圳市 杭州市 南京市 重庆市 吃饭 睡觉 跑步
提交 重置

Form 组件基于 async-validator 实现的数据验证,给 Form 设置属性 rule同时给需要验证的 Form-item 设置属性 prop 指向对于字段即可。

FormItem 也可以设置校验的rule。如果From的rule中也配置了rule则会跟Form设置的rule合并。

校验规则可以是响应式的对象。

如果FormItem里面不包含表单组件则可以通过设置value来实现校验。

除了async-validator中定义的type之外我们还定义了

  • mobile: 手机号
  • cname: 中文名
  • password: 密码必须包含大写、小写字符和数字8-16位
  • money: 金额可以配置小数点后的位数afterPoint
  • equal: 与什么enqualTo相等
  • min: 不小于minTo
  • max: 不大于maxTo

API

Form Methods

校验整个表单

this.$refs.formValidate.validate((valid, errors) => {
    console.log(valid, errors)
})

校验表单项

对部分表单字段进行校验的方法field为需校验的 prop

this.$refs.formValidate.validateField("field", (valid, errors) => {
    console.log(valid, errors)
})

重置

重置校验结果, 如果传了filed则只重置这个如果没有则重置所有

this.$refs.formValidate.resetFields(() => {
})
this.$refs.formValidate.resetFields("field", () => {
})

Form Props

属性 说明 类型 默认值
type 表单类型,可选值有normalquery String normal
rule 表单验证规则,具体配置查看async-validator Boolean false
labelPosition 表单域标签的位置,可选值为leftrighttop String right
labelWidth 表单域标签的宽度 Number 80
showMessage 是否显示校验信息 Boolean true
autocomplete 是否配置为自动完成功能,可选有onoff Boolean off

Form Events

事件名 说明 返回值
on-validate 对表单项进行校验后触发 (errors) => void
submit 提交时触发 (valid, errors) => void

FormItem Props

属性 说明 类型 默认值
prop 定义了prop才会被校验 String null
label FormItem项标签名称 String null
rule 表单验证规则,具体配置查看async-validator Boolean false
labelPosition 表单域标签的位置,可选值为leftrighttop String right
labelWidth 表单域标签的宽度 Number 80
showMessage 是否显示校验信息 Boolean true
value 配置后,则根据此值进行校验 String, Number, Array, Boolean, Object null