当前位置: 首页 > article >正文

修改ID不能用关键字作为ID校验器-elementPlus

1、校验器方法 - forbiddenCharValidator 

const idUpdateFormRef = ref(null);
const forbiddenCharValidator = (rule, value, callback) => {
  const forbiddenCharacters = [
    'as',
    'for',
    'default',
    'in',
    'join',
    'left',
    'inner',
    'right',
    'where',
    'when',
    'case',
    'select'
  ];
  for (let forbiddenCharacter of forbiddenCharacters) {
    if (value && value === forbiddenCharacter) {
      callback(new Error(`不能使用关键字 '${forbiddenCharacter}' 作为ID`));
      return;
    }
  }
  callback();
};

2、校验规则

const idFormRules = {
  guidText: [
    {
      required: true,
      message: '请输入ID',
      trigger: 'blur'
    },
    { validator: forbiddenCharValidator, trigger: 'blur' },
    { min: 8, max: 8, message: 'ID必须为8位', trigger: 'blur' },
    {
      pattern: /^[a-z0-9]+$/,
      message: '输入只能包含小写字母和数字',
      trigger: 'blur'
    }
  ]
};

3、 确定事件

通过校验才能关闭弹窗

const confirmModifyIdDialog = () => {
  guidUpdateFormRef.value.validate((valid) => {
    if (valid) {
      openModifyIdDialog.value = false;
    }
  });
};

4、html

<el-dialog v-model="openModifyIdDialog" title="修改ID">
    <el-form
      ref="idUpdateFormRef"
      :model="idUpdateForm"
      :rules="idFormRules"
    >
      <el-form-item
         label="ID:"
         style="margin-left: 20px"
         prop="idText"
      >
          <el-input
              v-model="idUpdateForm.idText"
              placeholder="请输入ID"
          />
      </el-form-item>
    </el-form>
    <template #footer>
      <div class="dialog-footer">
        <el-button @click="cancelModifyIdDialog">取消</el-button>
        <el-button type="primary" @click="confirmModifyIdDialog">
           确定
        </el-button>
      </div>
    </template>
</el-dialog>
              

 以上就是实现关键字校验器的具体步骤。


http://www.kler.cn/news/327835.html

相关文章:

  • 【Java】虚拟线程与Java 8普通线程池的对比
  • PHP反序列化1(基础入门)
  • 单片机内存保护-MPU(Memory Protection Unit)
  • 【最新华为OD机试E卷-支持在线评测】字符串变换最小字符串(100分)多语言题解-(Python/C/JavaScript/Java/Cpp)
  • CSS | 面试题:你知道几种移动端适配方案?
  • Git常用方法——详解
  • 【解密 Kotlin 扩展函数】扩展属性与扩展函数类似(十九)
  • 网络协议 TCP、UDP 和 HTTP
  • 解决QWidget及内部控件只能放大不能缩小的问题
  • Vscode: reason: oom, code: -536870904
  • VBA数据库解决方案第十五讲:Recordset集合中单个数据的精确处理
  • 【无标题】observer: error while loading shared libraries: libmariadb.so.3处理办法
  • 以串口接口为例介绍关于BSP底层架构开发的迭代过程
  • LeetCode 983.最低票价
  • 前端面试:项目细节重难点问题分享(17)
  • 无环SLAM系统集成后端回环检测模块(loop):SC-A-LOAM以及FAST_LIO_SLAM
  • 基于MTK7981平台,学习了解理解SoC上电和boot流程
  • Thinkphp/Laravel基于vue的的出版社书籍阅读管理系统
  • Docker笔记-Docker磁盘空间清理
  • c#中的功能优势
  • 【QT Quick】基础语法:文件定义类型与枚举类型
  • 最大正方形 Python题解
  • windows下安装nginx和基本配置
  • cfg80211是怎么配置无线设备的AP的?
  • Python与MongoDB交互
  • 《一本书讲透Elasticsearch》读书笔记-索引
  • 2024年主流前端框架的比较和选择指南
  • 【学术会议征稿】2024年遥感技术与图像处理国际学术会议(RSTIP 2024)
  • taro RN 左右滑动切换页面
  • 自动驾驶 3DGS 学习笔记