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

表单自定义规则的校验

在 Vue 3 中使用 Element Plus 的表单组件进行自定义规则的校验非常方便。Element Plus 提供了 ElFormElFormItem 组件,它们内置了表单验证的功能。下面我将详细介绍如何使用 Element Plus 进行自定义规则的校验。

创建表单及规则

首先,你需要创建一个 ElForm 组件,并为其提供一个 model rules 对象。然后在每个 ElFormItem 中绑定 prop 属性,该属性应该对应于 model 中的字段。

示例代码

<template><el-form :model="form" :rules="rules" ref="formRef" label-width="80px"><el-form-item label="用户名" prop="username"><el-input v-model="form.username"></el-input></el-form-item><el-form-item label="密码" prop="password"><el-input v-model="form.password" type="password"></el-input></el-form-item><el-form-item><el-button type="primary" @click="submitForm">提交</el-button></el-form-item></el-form>
</template><script setup>
import { ref } from 'vue';const formRef = ref(null);
const form = ref({username: '',password: ''
});const rules = ref({username: [{ required: true, message: '请输入用户名', trigger: 'blur' },{ min: 3, max: 10, message: '长度在 3 到 10 个字符', trigger: 'blur' }],password: [{ required: true, message: '请输入密码', trigger: 'blur' },{ min: 6, max: 15, message: '长度在 6 到 15 个字符', trigger: 'blur' },{ validator: validatePassword, trigger: 'blur' }]
});function validatePassword(rule, value, callback) {if (value === '') {callback(new Error('请输入密码'));} else {if (form.value.username === value) {callback(new Error('密码不能与用户名相同'));} else {callback();}}
}function submitForm() {formRef.value.validate((valid) => {if (valid) {alert('提交成功!');} else {console.log('验证失败');return false;}});
}
</script>

说明

  1. 定义表单模型form 是一个响应式对象,用于存储表单数据。
  2. 定义验证规则rules 对象定义了表单验证规则。
    • required: 是否必填。
    • min 和 max: 字符串长度的最小和最大值。
    • trigger: 触发验证的事件,例如 blur 表示失去焦点时触发验证,change是change:改变触发。
    • validator: 自定义验证函数。
  3. 自定义验证函数validatePassword 函数用于验证密码是否与用户名相同。
  4. 提交表单submitForm 函数调用 formRef.value.validate 方法来触发表单验证。如果所有验证都通过,则提交表单。

注意事项

  • 确保在 ElForm 上使用 ref 属性,以便可以通过引用访问表单实例。
  • 自定义验证函数的第一个参数 rule 是当前验证规则的信息,第二个参数 value 是表单字段的值,第三个参数 callback 是回调函数,用于报告验证结果。

相关文章:

表单自定义规则的校验

在 Vue 3 中使用 Element Plus 的表单组件进行自定义规则的校验非常方便。Element Plus 提供了 ElForm 和 ElFormItem 组件&#xff0c;它们内置了表单验证的功能。下面我将详细介绍如何使用 Element Plus 进行自定义规则的校验。 创建表单及规则 首先&#xff0c;你需要创建…...

JVM 有哪些垃圾回收算法(回收机制)?

JVM 有哪些垃圾回收算法&#xff08;回收机制&#xff09;&#xff1f; 标记-清除算法 在Java虚拟机中&#xff0c;标记-清除算法是一种用于垃圾回收的算法。它分为两个阶段&#xff1a;标记阶段和清除阶段。 在标记阶段&#xff0c;垃圾收集器会遍历堆内存中的所有对象&…...

2024年高教社杯数学建模国赛A题思路解析+代码+论文

2024年高教社杯全国大学生数学建模竞赛&#xff08;以下简称国赛&#xff09;将于9月5日晚6时正式开始。 下文包含&#xff1a;2024国赛思路解析​、国赛参赛时间及规则信息说明、好用的数模技巧及如何备战数学建模竞赛 C君将会第一时间发布选题建议、所有题目的思路解析、相…...

Linux中yum、vim、gcc/g++的使用

目录 一、Linux 软件包管理器 yum 什么是软件包 关于 rzsz 查看软件包★ 如何安装软件★ 如何卸载软件★ Linux 开发工具 二、Linux编译器-vim使用 vim的基本概念 vim的基本操作 vim正常模式命令集 vim末行模式命令集 vim操作总结 如果在vim界面不小心按了Ctrl …...

基于模糊神经网络的金融序列预测算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于模糊神经网络的金融序列预测算法matlab仿真,根据序列的MAD,RSI,KD等指标实现序列的预测和最终收益分析。 2.测试软件版本以及运行结果展示 MATLAB2022A版本…...

STM32 HAL库常用功能封装

关中断 /*** brief 关闭所有中断(但是不包括fault和NMI中断)* param 无* retval 无*/ void sys_intx_disable(void) {__ASM volatile("cpsid i"); }开中断 /*** brief 开启所有中断* param 无* retval 无*/ void sys_intx_enabl…...

golang zap日志库 打印日志时显示的源文件始终是同一个问题解决方法 zap.Option函数可选项 zap.AddCallerSkip(1) 使用示例

这种情况一般出现在我们对zap日志库进行二次封装的情况下&#xff0c; 在打印日志的时候的源文件非我们期望的文件&#xff0c;如下 原因分析 出现这个问题的原因是zap函数内部在调用 runtime.Caller 时的skip层级不对了&#xff0c;因为我们进行了二次封装&#xff0c;所以za…...

BL196MQTT远程IO模块助力智能楼宇自动化升级

在智能楼宇自动化领域&#xff0c;每一个细节的优化都能带来整体效率与舒适度的显著提升。钡铼技术的BL196MQTT远程IO模块&#xff0c;以其卓越的灵活性和强大的性能&#xff0c;正在成为这一领域中推动楼宇自动化升级的关键力量。 钡铼技术IOy系列&#xff1a;创新与灵活性的…...

【面试宝典】Java面向对象面试题总结(上)

一、重写和重载 在Java中&#xff0c;重写&#xff08;Override&#xff09;和重载&#xff08;Overload&#xff09;是面向对象编程中两个非常重要的概念&#xff0c;它们都与方法的定义和调用有关&#xff0c;但两者有着本质的区别。 1、重写&#xff08;Override&#xff…...

如何运用独特的产业运营体系打造一流的数字媒体产业园

如何运用独特的产业运营体系打造一流的数字媒体产业园 2024-08-15 17:37树莓集团 在数字经济蓬勃发展的今天&#xff0c;数字媒体产业作为其中的重要一环&#xff0c;正展现出巨大的潜力和活力。而如何运用独特的产业运营体系&#xff0c;打造一流的数字媒体产业园&#xff0…...

安全基础学习-SHA-256

SHA-256 是一种密码学哈希函数,是 SHA-2(Secure Hash Algorithm 2)家族的一部分。它被广泛用于数据完整性验证、数字签名以及密码存储等领域。 1、SHA-256的原理 SHA-256 生成一个固定长度为 256 位(32 字节)的哈希值。无论输入数据的大小或类型,输出的哈希值始终是 25…...

Redis中Big Key该如何解决?

目录 1、Big Key的产生 2、BigKey场景分析 3、Big Key的危害 4、检测 BigKey 5、解决 BigKey 问题 Big Key拆分 &#xff08;1&#xff09;按时间/业务拆分 &#xff08;2&#xff09;按哈希&#xff08;Hash&#xff09;拆分 &#xff08;3&#xff09;按前缀树拆分…...

基于springboot的实习管理系统

TOC springboot207基于springboot的实习管理系统 绪论 1.1研究背景与意义 信息化管理模式是将行业中的工作流程由人工服务&#xff0c;逐渐转换为使用计算机技术的信息化管理服务。这种管理模式发展迅速&#xff0c;使用起来非常简单容易&#xff0c;用户甚至不用掌握相关的…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测

土地利用/土地覆盖数据是生态、环境和气象等领域众多模型的重要输入参数之一。基于遥感影像解译&#xff0c;可获取历史或当前任何一个区域的土地利用/土地覆盖数据&#xff0c;用于评估区域的生态环境变化、评价重大生态工程建设成效等。借助CLUE模型&#xff0c;实现对未来土…...

Rust 之环境搭建

前言 Rust 是一种现代的系统级编程语言&#xff0c;以其内存安全性、高性能和简洁的语法而著称。本文将介绍如何在不同操作系统上搭建 Rust 开发环境&#xff0c;并配置好基础工具&#xff0c;使您能够快速开始 Rust 编程。 1. 安装 Rust Rust 官方推荐使用 rustup 工具来管…...

基于微信小程序地图实现点位标注、覆盖物、地图聊天

目录 小程序部分map标签的使用获取用户经纬度并转换地址地图点击事件覆盖物标注点击并实现弹窗交互数据库及接口部分数据库表结构设计API搭建小程序接口使用注意事项wx.getLocation深入控制地图小程序部分 map标签的使用 创建小程序的步骤这里不再重复赘述,在wxml页面中放一个…...

xxl-job的分片广播+单播

1 介绍一下xxl-job XXL-JOB 是一个分布式任务调度平台&#xff0c;旨在为分布式应用系统提供开箱即用的调度解决方案。它非常易于使用&#xff0c;并具有很高的可扩展性。以下是 XXL-JOB 的详细介绍&#xff0c;包括其核心功能、架构设计、主要组件及其应用场景。 核心功能 简…...

情感分类代码

在进行自然语言处理中的情感分类时&#xff0c;通常需要准备以下几方面的内容&#xff1a; 1. **数据集**&#xff1a;高质量的标注数据集是关键&#xff0c;包括正面、负面和中性情感标记的文本。 2. **情感词典**&#xff1a;可用的情感词典&#xff0c;如SentiWordNet&…...

WPF—常用控件、属性、事件、详细介绍

WPF—常用控件、属性、事件、详细介绍 WPF&#xff08;Windows Presentation Foundation&#xff09;是微软推出的基于Windows 的用户界面框架&#xff0c;属于.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架&#xff0c;真正做到了分离界面设计人员与开发人…...

Oracle遭遇bug导致共享内存无法分配报ORA-04031错误

1.故障描述 在7月17日上午11时左右&#xff0c;收到告警短信&#xff0c;提示集群节点2宕机&#xff0c;当即登陆该节点进行查看&#xff0c;发现数据库状态正常。但日志里出现大量的ORA-04031报错&#xff0c;提示无法分配shared_pool&#xff0c;当时手动执行shared pool刷新…...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子&#xff0c;用于处理异步操作&#xff08;如数据加载&#xff09;中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误&#xff1a;捕获在 loader 或 action 中发生的异步错误替…...

逻辑回归:给不确定性划界的分类大师

想象你是一名医生。面对患者的检查报告&#xff08;肿瘤大小、血液指标&#xff09;&#xff0c;你需要做出一个**决定性判断**&#xff1a;恶性还是良性&#xff1f;这种“非黑即白”的抉择&#xff0c;正是**逻辑回归&#xff08;Logistic Regression&#xff09;** 的战场&a…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;用于构建 API&#xff0c;支持 Python 3.6。它基于标准 Python 类型提示&#xff0c;易于学习且功能强大。以下是一个完整的 FastAPI 入门教程&#xff0c;涵盖从环境搭建到创建并运行一个简单的…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?

在工业自动化持续演进的今天&#xff0c;通信网络的角色正变得愈发关键。 2025年6月6日&#xff0c;为期三天的华南国际工业博览会在深圳国际会展中心&#xff08;宝安&#xff09;圆满落幕。作为国内工业通信领域的技术型企业&#xff0c;光路科技&#xff08;Fiberroad&…...

c# 局部函数 定义、功能与示例

C# 局部函数&#xff1a;定义、功能与示例 1. 定义与功能 局部函数&#xff08;Local Function&#xff09;是嵌套在另一个方法内部的私有方法&#xff0c;仅在包含它的方法内可见。 • 作用&#xff1a;封装仅用于当前方法的逻辑&#xff0c;避免污染类作用域&#xff0c;提升…...

绕过 Xcode?使用 Appuploader和主流工具实现 iOS 上架自动化

iOS 应用的发布流程一直是开发链路中最“苹果味”的环节&#xff1a;强依赖 Xcode、必须使用 macOS、各种证书和描述文件配置……对很多跨平台开发者来说&#xff0c;这一套流程并不友好。 特别是当你的项目主要在 Windows 或 Linux 下开发&#xff08;例如 Flutter、React Na…...

如何通过git命令查看项目连接的仓库地址?

要通过 Git 命令查看项目连接的仓库地址&#xff0c;您可以使用以下几种方法&#xff1a; 1. 查看所有远程仓库地址 使用 git remote -v 命令&#xff0c;它会显示项目中配置的所有远程仓库及其对应的 URL&#xff1a; git remote -v输出示例&#xff1a; origin https://…...