Element UI Form表单验证

2020-12-18  本文已影响0人  努力与幸运

Form组件提供表单验证的功能,只需要通过rules属性传入约定的验证规则,并将Form-Item的prop属性设置为需校验的字段名即可。
rules中单个表单域校验规则可以包含多个数组,每个数组即是一条校验规则:

name: [
   { required: true, message: '请输入活动名称', trigger: 'blur' },
   { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
]

数组中的单个校验规则对象中包含required/message/trigger/min/max等参数。

type

表明要使用验证器的类型,类似于数据格式校验,使用这个,可以对一些特定的字段进行校验,不用像之前那样写正则了。
可识别的类型值有:

required

必填字段,即非空验证。

pattern

正则表达式,如果需要验证手机号码之类的,可以直接编写正则表达式配置道校验规则中,就不需要自己去校验了。

{ type : "string" , required: true , pattern : /^[a-z]+$/ }
min/max

判断数据大小范围,通常对数字大小范围做校验。对于字符串和数组类型,将根据长度进行比较。

{ required: true, message: '请输入活动名称', trigger: 'blur' },
{ min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
len

长度验证

enum

枚举值验证

role: {type: "enum", enum: ['admin', 'user', 'guest']}
whitespace

验证是否只有空格(如果没有该配置,则全空格的输入也是有效的)

transform:

有时有必要在验证之前转换值,以强制或以某种方式对其进行清理。为此transform,向验证规则添加一个功能。在验证之前,先转换属性,然后将其重新分配给原对象,以更改该属性的值。

// 校验
transform: [
 {
    type: 'enum',
    enum: [2,4,6], 
    message: `结果不存在`, 
    trigger: ['change', 'blur'],
    transform(value) {
      return Number(value * 2)
    }
  }
]

如上,只有输入1、2、3的时候才能校验通过。

貌似这个只能辅助校验,并不能改变组件绑定变量本身的值。

fields:

深层规则,可以通过将嵌套规则分配给规则的属性来验证object或array类型的验证规则,

address: {
    type: "object", required: true,
    fields: {
      street: {type: "string", required: true},
      city: {type: "string", required: true},
      zip: {type: "string", required: true, len: 8, message: "invalid zip"}
    }
  }
roles: {
    type: "array", required: true, len: 3,
    fields: {
      0: {type: "string", required: true},
      1: {type: "string", required: true},
      2: {type: "string", required: true}
    }
  }
上一篇下一篇

猜你喜欢

热点阅读