Element-plus中的表单验证

ops/2024/10/22 16:01:46/

一、属性绑定

在 Element-plus 的 Form 组件中,需要对用户的输入进行规范验证时,可使用 rules 属性对验证规则做绑定。并在 el-form-item标签上设置 prop 属性的键值。

<template><div><el-form :model="ruleForm"style="max-width: 600px":rules="rules"><el-form-item label="课程号" prop="cno"><el-input v-model="form.cno" /></el-form-item><el-form-item label="课程名" prop="cname"><el-input v-model="form.cname" /></el-form-item><el-form-item label="课时" prop="classhour"><el-input v-model="form.classhour" /></el-form-item><el-form-item label="学分" prop="credit"><el-input v-model="form.credit" /></el-form-item></el-form></div>
</template>

二、表单校验

const rules = reactive({cno: [{ required: true, message: '请输入课程号', trigger: 'blur' },{ length: 4, message: '课程号长度为4位', trigger: 'blur' },],cname: [{ required: true, message: '请输入课程名', trigger: 'blur' },{ max: 20, message: '课程名长度不能超过20位', trigger: 'blur' },],classhour: [{ type: 'number', message: '课时必须为数字', trigger: 'blur' },],credit: [{ type: 'number', message: '学分必须为数字', trigger: 'blur' },],
})

三、自定义校验规则

在使用自定义规则中,使用 v-model绑定自定义校验规则的字段。

PS:自定义校验规则必须写在 rules 方法之前,因为这里声明的校验规则(函数)使用的是 const,而 const、let 是块级作用域,不能进行变量提升;var是函数级作用域,可以变量提升。

PS:校验规则函数三个函数 rule, value, callback 中,虽然 rule 没有使用,但这里也不能去掉,因为它确定了 callback()是一个函数。不然会报错:callback is not a function。

绑定自定义校验规则的字段:

<el-form-item label="课程名" prop="classhour"><el-input v-model="form.cname" v-model="ruleForm.cname" />
</el-form-item>

校验规则:

// 需要自定义校验的字段
const ruleForm= reactive({cname: '',
})// 自定义的校验规则
const validateCname= (rule, value, callback) => {if (value === '' || value === null) {callback(new Error('课程名不能为空'));} else if (自定义条件) {callback(new Error('返回错误提示'));} else {callback();}
}// 
const rules = reactive({...cname: [{ validator: validateCname, trigger: 'blur' },],...
})

四、数字类型验证

在自定义校验规则时,如果是数字类型验证,那么需要在 v-model  处加上 .number 的修饰符。

绑定校验规则:

<el-form-item label="课程名" prop="classhour"><el-input v-model="form.cname" v-model="ruleForm.cname" />
</el-form-item>
<el-form-item label="学分" prop="classhour"><el-input v-model="form.credit" v-model.number="ruleForm.credit" />
</el-form-item>

自定义校验规则:

// 需要自定义校验的字段
const ruleForm= reactive({cname: '',credit: '',
})
// 自定义校验规则
const validateCreditRange = (rule, value, callback) => {if (value < 2 || value > 5) {callback(new Error('课时必须在2-5之间'));} else {callback();}
}
const rules = reactive({...credit: [{ type: 'number', message: '学分必须为数字', trigger: 'blur' },{ validator: validateCreditRange, trigger: 'blur' },],
})

若有错误,欢迎大佬斧正。


http://www.ppmy.cn/ops/127607.html

相关文章

文本数据可视化

文字是传递信息最常用的载体。在当前这个信息爆炸的时代,人们接收信息的速度已经小于信息产生的速度,尤其是文本信息。当大段大段的文字摆在面前,已经很少有耐心去认真把它读完,经常是先找文中的图片来看。这一方面说明人们对图形的接受程度比枯燥的文字要高很多,另一方面…

物联网之温湿度传感器模块、arduino、esp32

MENU 原理硬件电路设计软件程序设计 原理 无论是工业领域还是日常生活&#xff0c;温度和湿度一直都是两个比较重要的指标&#xff0c;DHT11和DHT22是DHTxx系列中使用最广泛的两种传感器。它们有着相同的引脚&#xff0c;用法一致。 如果拆下传感器的外壳&#xff0c;其实里面…

秩序的构建:探寻排序算法的奥秘,开启数据世界的诗篇

目录 一、排序算法的基本概念 二、常见排序算法的运行方式和 C 语言实现 1. 冒泡排序 2. 选择排序 3. 插入排序 4. 归并排序 5. 快速排序 三、排序算法的深度分析 1. 时间复杂度 2. 空间复杂度 3. 稳定性 四、总结 五、其他 一、排序算法的基本概念 排序算法是指…

数字孪生城市:智慧城市的未来蓝图

在当今数字化时代&#xff0c;智能技术的广泛应用正在改变人们的生活和工作方式。数字孪生城市作为未来新型智慧城市演进的重要方向&#xff0c;数字孪生城市是一种将城市物理世界的各个方面转化为数字形式的技术&#xff0c;通过网络空间与物理世界之间的实时数据交换和仿真分…

界壁0.1

为了实现全面而强大的安全系统,我们进一步完善代码,确保每个功能模块都尽可能地健壮和高效。以下是一个更完善的版本,涵盖了所提到的功能: 功能概述 请求 root 权限:确保脚本以 root 权限运行。 配置防火墙规则:自动获取所需权限,配置 iptables 规则以记录和拦截流量。…

sqoop搭建教程

1.上传并解压 tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz2.修改配置文件 cd sqoop-1.4.6/conf/mv sqoop-env-template.sh sqoop-env.shvim sqoop-env.sh3.配置环境变量 vim /etc/profilesource /etc/profile4.添加jar包 cd /usr/local/soft/sqoop-1.4.6/lib

linux查看占用高进程所在目录

1.遇到的问题 服务器被攻击&#xff0c;nmon流量占用很高&#xff0c;可以使用如下命令查看应用所在目录 如果你想要查看特定进程的完整路径&#xff0c;可以使用以下命令&#xff1a; readlink -f /proc/<pid>/exe 2.解决办法 删掉文件&#xff0c;之后kill 掉这个进程…

初识适配器模式

适配器模式 引入 生活中的例子&#xff1a;当我们使用手机充电时&#xff0c;充电器起到了转换器的作用&#xff0c;它将家用的220伏特电压转换成适合手机充电的5伏特电压。 适配器模式的三种类型 命名原则&#xff1a;适配器的命名应基于资源如何传递给适配器来进行。 类适配…