ElementPlus 表单校验 async-validator 校验规则

Element 表单校验 async-validator 校验规则

Element表单校验用的是async-validator,git传送门
或者看依赖包里的代码:
node_modules\async-validator\dist-types\index.d.ts
在这里插入图片描述

  1. type
    很少用到,input框正常情况的值都是’string’,radio, checkbox也用不到这个
  2. required
    必填
    { required: true, message: '请输入活动名称', trigger: 'blur' }
    
  3. pattern
    正则校验,可以写自己需要的各种正则表达式
    {pattern: /^[a-zA_Z0-9]{2,10}$/, message:'请输入2到10位数字或字母', trigger: 'blur'},
    
  4. max, min, len
    {max:2,min:10, message:'请输入2到10位数字或字母', trigger: 'blur'},
    { len: 10, message: '请输入10个字符', trigger: 'blur' }
    
  5. enum
    只能输入在备选数组中的值,一般这种就用select或者radio了,很少用到
    { type: 'enum', enum: ['admin', 'user', 'guest'] },
    
  6. Whitespace
    不能全部都是空格
    {whitespace: true, message: '不能为全空格', trigger: 'blur' }
    
  7. fields
    如果需要验证深层对象属性,可以通过将嵌套规则指定给规则的fields属性来验证对象或数组类型的验证规则。
  8. options
  9. defaultField
  10. transform

自定义校验

  1. validator
    根据自己的逻辑判断,每种情况记得callback
    // 同步校验
    {
    	validator: (rule, value, callback) => {
        if (value === '') {
          callback(new Error('请输入密码'));
        } else {
          if (this.ruleForm.checkPass !== '') {
            this.$refs.ruleForm.validateField('checkPass');
          }
          callback();
        }
     },
     // 异步校验 我自己的项目中用到的场景:注册时查询账号是否被注册,手机号邮箱是否已绑定等
    {
        validator: async (rule, value, callback) => {
          try {
            await isExistUserName(value)
            callback()
          } catch {
            callback(new Error('该用户名已被使用'))
          }
        },
        trigger: 'change'
      };
    
  2. asyncValidator
    异步校验,用途同上,写法不一样
    	asyncValidator(rule, value, callback) {
    		isExistUserName(value).then(() => {
    			callback()
    		}).catch((err) => {
    			callback(new Error(err))
    		})
    	}
    

码字不易,谢谢点赞~

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值