el-form动态表单动态验证(先验证不为空,再验证长度在20以内,最后向后台发送请求验证账号是否重复)

javascript 复制代码
data(){
   var checkSno = (rule, value, callback) => {
      if (!value) {
        callback(new Error("请输入账号"));
      } else if (value.length > 20) {
        callback(new Error("长度为1-20"));
      } else {
        if (this.form.id) {
          // 修改时检查账号是否重复
          selectLoginId({ sno: value, id: this.form.id })
            .then((res) => {
              if (res) {
                callback();
              } else {
                callback(new Error("账号重复,请选择其他账号"));
              }
            })
            .catch((error) => {
              callback(new Error("验证失败,请重试"));
            });
        } else {
          // 新增时检查账号是否重复
          selectLoginId({ sno: value })
            .then((res) => {
              if (res) {
                callback();
              } else {
                callback(new Error("账号重复,请选择其他账号"));
              }
            })
            .catch((error) => {
              callback(new Error("验证失败,请重试"));
            });
        }
      }
    };
   return{
    rules: {
        sno: [{ validator: checkSno, trigger: "blur" }],
    }
   }
}

html代码:

html 复制代码
        <el-form-item
          label="账号"
          :label-width="formLabelWidth"
          required
          prop="sno"
        >
          <el-input v-model="form.sno" autocomplete="off"></el-input>
        </el-form-item>
相关推荐
前端Hardy4 分钟前
HTML&CSS:超有趣的登录表单
javascript·css·html
艾克马斯奎普特6 分钟前
Vue.js 3 渐进式实现之响应式系统——第八节:调度执行
前端·vue.js
小old弟7 分钟前
🤔不会搭建技术博客,Trae+vitepress,😎3s搞定
前端·trae
陈奕迅本讯7 分钟前
前端-Vue2组件化编程
前端·javascript·vue.js
T - mars9 分钟前
python爬虫:喜马拉雅案例(破解sign值)
javascript·爬虫·python
十五_在努力9 分钟前
参透 JavaScript —— 异步编程与Promise
前端·javascript·promise
顾林海11 分钟前
Flutter 图片组件全面解析:从基础加载到高级应用
android·前端·flutter
背书包的甜瓜13 分钟前
使用sass 实现px转vh或vw,适配适老化时,在设计图字体大小的基础上,增加3px(可配置),
前端·css·sass
十五_在努力14 分钟前
参透 JavaScript —— 图解 Event Loop 事件循环
前端·javascript
十五_在努力20 分钟前
参透JavaScript —— 判断数据类型的四种方式
前端·javascript