验证规则的官方说明: https://github.com/yiminghe/async-validator
大概总结如下:
参考网站:
https://blog.csdn.net/ddwddw4/article/details/89216594
https://www.jianshu.com/p/ef97dbf4fcfe
内容:
1. 支持的基本类型
<FormItem
prop="UserId"
:rules=" [
{ required: true, message: '请选择一项', trigger: 'change',type:'number',min:1},
]"
>
<Select v-model="formAddOrder.UserId" filterable @on-change="selectUser">
<Option v-for="(item,index) in userList" :value="item.UserId" :label="item.name" :key="index" >
<span>{{item.name}}</span>
</Option>
</Select>
</FormItem>
type :
string: 必须是字符串类型。这是默认类型
number: 必须是数字
boolean: 必须是布尔型的
method:必须是类型函数
regexp: 必须是ReGEXP的实例,或者是在创建新的ReGEXP时不会生成异常的字符串
integer:必须是整数.
float:必须是浮点数.
array: 必须是由Array.isArray确定的数组
object: 必须是类型对象而不是Array.isArray
enum: 枚举中必须存在值。
date: 按日期确定的值必须有效
url: 必须是URL类型。
hex: 必须是十六进制。
email:必须是电子邮件类型。
required:true | false
pattern :正则表达式
min: 最小值
max: 最大值
Length : 长度
enum: 验证字段是否存在其中
{ message:'不包含a , u, g',trigger: 'change',type: 'enum',enum: ['a', 'u', 'g']}
messages: 错误信息
trigger : ‘change’ | ‘blur’
whitespace : true | false
true:空白字符 ->错误提醒
false: 空白字符->不报错
{ type: 'string', whitespace:true,message:'包含空白字符',trigger: 'change'}
使用过程中出现的问题1:无法验证number类型
解决办法:使用正则表达式(js中正则表达式必须以^开头,$结尾)
{ required: true, message: '用户账号不能为空', trigger: 'blur'},
{ pattern: '^[0-9]{8}$', message: '请输入8位账号' }
使用过程中出现的问题2:一些需要自动补全的栏目(邮箱),一直报错格式不正确
解决办法:将trigger改成change即可