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>
相关推荐
wing9810 小时前
人生第一个私活:不到 2 小时,到手 350 元
前端·后端·程序员
张张123y10 小时前
后端第十二课:Agent 开发(让大模型从“会答“升级到“会做“)
前端·大模型·llm·agent·rag
OpsEye10 小时前
模型能力波动怎么办?网关侧做模型质量监控与自动切换
javascript·ai编程
A小码哥10 小时前
大模型成本怎么降,5 个动作先做前两个
java·前端·spring
PHP是世界上最好的语言10 小时前
ComPDF预览本地正常,部署后白屏:检查资源、路径和许可
前端
kiros_wang10 小时前
项目分包方案:模块拆分、跨模块组件与方法引用规范
前端
PedroQue9910 小时前
unix-utils v0.2.0 发布:modal 全端统一,自绘窗口解决输入框难题
前端·uni-app
Csvn10 小时前
网络优化
前端
代码猎人11 小时前
前端怎么跟进生态新技术
前端
海阳皓辰网络科技有限公司11 小时前
Vue3 冷库货位选择器:三级联动、扫码带出与批次混放校验
前端·vue.js