vue项目中用element ui中Form的自定义校验位置(包含多个表单循环校验)

  data() {
    // 表单验证自定义规则
    const validatePass = (rule, value, callback) => {
      // 如果为空
      if (value === '') {
        callback(new Error('请输入角色名称'))
      } else {
        // 进行表单遍历
        for (let i = 0; i < this.roleList.length; i++) {
          // 判断新添加的角色名字有没有重名
          if (this.roleList[i].roleName === value) {
            for (let j = i + 1; j < this.roleList.length; j++) {
              if (this.roleList[j].roleName === value) {
                callback(new Error('请勿输入重名'))
              }
            }
          }
        }
        callback()
      }
    }
    return {

data部分之中写校验规则

return之中role附上规则方法 

    formValidate() {
      // 每次调用都恢复默认表单通过校验
      this.mistakeRole = true
      // 对页面渲染数据进行循环,获取动态ref,依次进行表单校验
      for (let i = 0; i < this.roleList.length; i++) {
        this.$refs[`roleList${i}`].validate((valid) => {
        // 对表单校验结果进行区分
          if (valid) {
            console.log('通过校验')
          } else {
            this.mistakeRole = false
          }
        })
      }
      // console.log('通过校验', this.mistakeRole)
    },

多个表单同时校验,动态ref,循环调用,附上html的动态ref写法

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值