element-ui 异步验证表单

data() {
  let serialno = (rule, value, callback) => {
        if (!value) return callback(new Error('序列号不能为空'))
        if (value.length > 50) return callback(new Error('序列号最多50个字符'))
        this.checkSerialno(value, callback)
        // 在此处将callback传到验证方法中
      }
  return {
    rules: {
      serialno: { validator: serialno, trigger: 'blur, change' }
    }
  }
}
methods: {
  // 序列号重复校验
    checkSerialno(serialno, callback) {  // 此方法不能用async,原因未知
        fetchCheckSerialno({ serialno }).then(res => {
          if (!res.flag) return callback(new Error('序列号验证失败'))
          if (!res.data) return callback(new Error('序列号重复'))
          callback()
        })
      }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容