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>
相关推荐
ashcn20012 分钟前
websocket测试通信
前端·javascript·websocket
weixin_404679314 分钟前
edge alt tab怎么关
前端·edge
吃吃喝喝小朋友15 分钟前
JavaScript文件的操作方法
开发语言·javascript·ecmascript
Trae1ounG17 分钟前
模块间通信解耦
javascript
2501_9445264219 分钟前
Flutter for OpenHarmony 万能游戏库App实战 - 知识问答游戏实现
android·开发语言·javascript·python·flutter·游戏·harmonyos
CHU72903520 分钟前
线上扭蛋机拆盒小程序前端功能版块解析
前端·小程序·php
卿着飞翔35 分钟前
Vue使用yarn进行管理
前端·javascript·vue.js
夏天想41 分钟前
vue通过iframe引入一个外链地址,怎么保证每次切换回这个已经打开的tab页的时候iframe不会重新加载
前端·javascript·vue.js
GISer_Jing42 分钟前
2026年前端开发目标(From豆包)
前端·学习·aigc
军军君011 小时前
Three.js基础功能学习十一:动画与音频
前端·javascript·3d·js·threejs·三维