element-ui form表单动态新增删除校验规则

该博客介绍了如何在前端实现动态的表单验证规则,包括账号和密码的验证。`addRules`函数用于添加验证规则,如密码长度、字符组成等。`removeRules`函数用于清除验证规则。同时,通过`watch`监听`name`的变化,动态添加或移除验证规则。此示例对于前端表单验证和管理具有指导意义。
    // 动态校验
    addRules() {
      // 定义规则
      const validatePass = (rule, value, callback) => {
        value = String(value)
        if (!value) {
          callback(new Error('请输入密码'))
        }
        if (value.length < 6 || value.length > 20) {
          callback(new Error('密码长度为 6-20 个字符'))
        }
        if (!(/.*[0-9]+.*/).test(value) || !(/.*[a-z]+.*/).test(value) || !(/.*[A-Z]+.*/).test(value)) {
          callback(new Error('密码至少由 3 个类别(数字,小写字母,大写字母)的字符组成'))
        }
        callback()
      }

      const account= [
        {required: true, message: '账号不能为空', trigger: ["change", 'blur']}
      ];
      const passwd = [
        {validator: validatePass, required: true, trigger: ["change", 'blur']}
      ]
      // 给rules对象添加规则
      this.rules = { ...this.rules, account, passwd };
    },
    removeRules() {
      // 清除指定校验规则
      this.$refs["saveForm"].clearValidate(["account", "passwd"]);
      // 这行必须
      this.rules = { ...this.rules, account: [], passwd: []  };
    },

然后根据相关条件写相关逻辑

例如

watch: {
    'name': {
      handler(newVal, oldVal) {
        if (newVal) {
          this.removeRules();
        }else {
          this.addRules()
        }
      }
    }
  },

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值