Vue编写登录注册页面前端校验

登录注册校验

template页面

 <div class="app-login"><!--登录  --><div class="form"><el-form ref="form" size="large" autocomplete="off" v-if="isLogin" :model="registerData" :rules="rules"label-width="120px"><el-form-item><h1>登录</h1></el-form-item><el-form-item label="用户名" prop="username"><el-input :suffix-icon="Wicon" maxlength="5" :prefix-icon="User"  v-model="registerData.username" type="username" autocomplete="off" /></el-form-item><el-form-item label="密码" prop="password"><el-input :suffix-icon="Wicon2" maxlength="8" :prefix-icon="Lock" show-password v-model="registerData.password" type="password" autocomplete="off" /></el-form-item><div class="bt"><el-form-item><el-button type="primary" @click="submitForm(ruleFormRef)">登录</el-button><el-button @click="resetForm()">重置</el-button><el-button @click="isLogin = false">去注册</el-button></el-form-item></div></el-form><!--注册  --><el-form ref="form" size="large" autocomplete="off" v-else :model="registerData" :rules="rules" label-width="120px"><el-form-item><h1>注册</h1></el-form-item><el-form-item label="账户" prop="username"><el-input :prefix-icon="User" maxlength="5" :suffix-icon="Wicon" v-model="registerData.username" type="username"autocomplete="off" /></el-form-item><el-form-item label="密码" prop="password"><el-input :prefix-icon="Lock" :suffix-icon="Wicon2"  maxlength="8" show-password v-model="registerData.password" type="password"autocomplete="off" /></el-form-item><el-form-item label="确认密码" prop="repassword"><el-input :prefix-icon="Lock" :suffix-icon="Wicon3" maxlength="8"  show-password   v-model="registerData.repassword" type="password"autocomplete="off" /></el-form-item><div class="bt"><el-form-item><el-button type="primary" @click="submitForm(ruleFormRef)">注册</el-button><el-button @click="resetForm()">重置</el-button><el-button @click="isLogin = true">去登录</el-button></el-form-item></div></el-form></div></div>

script

import { User, Lock, CircleCheck, CircleCloseFilled } from '@element-plus/icons-vue'
import { ref } from 'vue'
// 默认是登录
const isLogin = ref(true)
const registerData = ref({username: '',password: '',repassword: ''
})
// 图标
const Wicon = ref('')
const Wicon2 = ref('')
const Wicon3 = ref('')// 用户名自定义校验icon
const checkicon = (rule, value, callback) => {if (registerData.value.username.length >= 2 && registerData.value.username.length <= 8) {Wicon.value = CircleCheck}else if(registerData.value.username.length === 0){Wicon.value = CircleCloseFilledcallback(new Error("请输入用户名"))} else {Wicon.value = CircleCloseFilledcallback(new Error("用户名需2到8位"))}
}
// 密码自定义校验
const checkicon2 = (rule, value, callback) => {if (registerData.value.password.length >= 4 && registerData.value.password.length <= 8) {Wicon2.value = CircleCheck} else if(registerData.value.password.length === 0){Wicon2.value = CircleCloseFilledcallback(new Error("请输入密码"))}  else {Wicon2.value = CircleCloseFilledcallback(new Error("密码需4到8位"))}
}// 校验确认密码函数
const checkPassword = (rule, value, callback) => {if (registerData.value.repassword == '') {Wicon3.value= CircleCloseFilledcallback(new Error("请输入确认密码"))} else if (registerData.value.repassword !== registerData.value.password) {Wicon3.value = CircleCloseFilledcallback(new Error("两次密码不一致"))} else {Wicon3.value = CircleCheckcallback()}
}
// 定义表单校验规则
const rules = {username: [{ required: true, validator: checkicon,trigger: 'change' }],password: [{ required: true, validator: checkicon2, trigger: 'change' }],repassword: [{ validator: checkPassword, trigger: 'change' }]}
// 清空函数
const resetForm = (value) => {registerData.value.username = '';registerData.value.password = '';registerData.value.repassword = '';
}

css部分,个人审美较差。

.app-login {border-radius: 30px;height: 500px;width: 500px;display: flex;justify-content: space-around;align-items: flex-start;flex-direction: column-reverse;border: 2px solid #ccc;padding: 8px;margin: -200px;// background-image: url(https://p4.itc.cn/q_70/images03/20230308/8f6053ee5e6348febfda49f7c31ebdf6.jpeg);// background-repeat: no-repeat;// background-size: cover;font-family: "Helvetica Neue"
}h1 {padding-left: 80px;margin-bottom: 20px;
}.form {padding: 20px;flex: 2;display: flex;flex-direction: column;align-items: center;justify-content: center;
}.bt {margin-top: 50px;
}

效果图

在这里插入图片描述
在这里插入图片描述
本文是自己的学习杂记,自己对前端Vue+elementUi+的练习。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/536772.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FXCM福汇官网:深入解析BOLL指标的喇叭口形态及含义

BOLL指标是一种通过布林线&#xff08;Bollinger Bands&#xff09;的上轨线、中轨线和下轨线的相互关系来判断市场趋势和波动性的技术分析工具。BOLL指标的喇叭口形态包括开口型、收口型和紧口型&#xff0c;它们各自具有独特的含义。 《FXCM福汇官网开户》 1. 开口型喇叭口…

cesium实现二三维联动

记录项目中实现二三维地图联动 效果如下&#xff1a; 第一步&#xff1a;现在页面中加载二三维地图&#xff08;地图的初始化已省略&#xff09; <template><div><div><button click"show">二三维联动</button></div><div&…

经典文献阅读之--RenderOcc(使用2D标签训练多视图3D Occupancy模型)

0. 简介 3D占据预测在机器人感知和自动驾驶领域具有重要的潜力&#xff0c;它将3D场景量化为带有语义标签的网格单元。最近的研究主要利用3D体素空间中的完整占据标签进行监督。然而&#xff0c;昂贵的注释过程和有时模糊的标签严重限制了3D占据模型的可用性和可扩展性。为了解…

Mendelson AS2 介绍下载和配置

最近与一家国外公司做EDI对接&#xff0c;并且EDI通讯工具是基于AS2协议的。目前开源的as2的开源项目有openas2,Mendelson AS2&#xff0c;和国人写的freeas2但是&#xff0c;现在freeas2已经被从开源中国不能下载了&#xff0c;变为收费的版本了。 如果你需要使用基于AS2协议…

智能仓储管理系统设计与实现

智能仓储管理系统设计与实现 第一章 绪论 1.1 设计背景 物联网&#xff08;英文&#xff1a;Internet of Things&#xff0c;缩写&#xff1a;IoT&#xff09;是万物相连的互联网&#xff0c;即把所有物品通过信息传感设备与互联网连接起来&#xff0c;以实现智能化识别、定位、…

Java网络爬虫拼接姓氏,名字并写出到txt文件(实现随机取名)

目录 1.爬取百家姓1.爬取代码2.爬取效果 2.爬取名字1.筛选男生名字2.筛选女生名字 3.数据处理&#xff08;去除重复&#xff09;4.拼接数据5.将数据写出到文件中 1.爬取百家姓 目标网站&#xff0c;仅作为实验目的。 ①爬取姓氏网站&#xff1a; https://hanyu.baidu.com/shic…

小狐狸ChatGPT系统 H5前端底部菜单导航文字修改方法

小狐狸ChatGPT系统后端都前端都是编译过的&#xff0c;需要改动点什么非常难处理&#xff0c;开源版修改后也需要编译后才能使用&#xff0c;大部分会员也不会使用&#xff0c;像简单的修改下底部菜单文字、图标什么的可以对照处理。这里以小狐狸ChatGPT系统1.9.2版本H5端为例&…

JWT signature does not match locally computed signature

1. 问题背景 最近在协助团队小盆友调试一个验签问题&#xff0c;结果还“节外生枝”了&#xff0c;原来不是签名过程的问题&#xff0c;是token的问题。 当你看到“JWT signature does not match locally computed signature. JWT validity cannot be asserted and should not…

多维时序 | MATLAB实CNN-Mutilhead-Attention卷积神经网络融合多头注意力机制多变量时间序列预测

多维时序 | MATLAB实CNN-Mutilhead-Attention卷积神经网络融合多头注意力机制多变量时间序列预测 目录 多维时序 | MATLAB实CNN-Mutilhead-Attention卷积神经网络融合多头注意力机制多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 多维时序 | …

python使用apscheduler定时任务,固定周几运行程序

在add_job中添加参数day_of_week即可&#xff1a; day_of_week "0"表示&#xff1a;只有周一运行day_of_week "0-4"表示&#xff1a;周一到周五运行day_of_week "0,1,2"表示&#xff1a;周一二三运行 示例程序 from datetime import datet…

IDEA基本设置

本博客适用于纯新手小白&#xff0c;或者刚下载IDEA想要优化开发添加配置的读者。 基础设置 滚轮调整字体大小 打开 IntelliJ IDEA。 转到菜单栏中的 “File” -> “Settings”&#xff08;Windows/Linux&#xff09;或 “IntelliJ IDEA” -> “Preferences”&#xff…

CTF show 71

CTF show 71 在源码中可以看到程序把缓冲区内容全部替换成了问号 ​​ ob_get_contents函数把缓冲区内容读到以后赋值给了变量s&#xff0c;类型是字符串。 ob_end_clean()函数清空当前缓冲区并且关闭缓冲区 ​​ 所以展示的结果中全是问号。所以我们需要在读取到文件以后…

计算机网络基础知识分享

计算机网络基础知识分享 发送一个http请求&#xff0c;从客户端到服务器端&#xff0c;都经历了什么? **Ⅰ&#xff0c;浏览器生成消息 ** &#xff08;1&#xff09;浏览器输入网址 我们的探索之旅从在浏览器中输入网址开始&#xff0c;网址&#xff0c;准确来说应该叫 UR…

JVM内存结构Java内存模型Java对象模型

悟空老师思维导图&#xff1a;https://naotu.baidu.com/file/60a0bdcaca7c6b92fcc5f796fe6f6bc9https://naotu.baidu.com/file/60a0bdcaca7c6b92fcc5f796fe6f6bc9 1.JVM内存结构&&Java内存模型&&Java对象模型 1.1.JVM内存结构 1.2.Java对象模型 Java对象模型…

Isaac Sim urdf文件导入

本教程展示如何在 Omniverse Isaac Sim 中导入 urdf 一. 使用内置插件导入urdf 安装urdf 插件 方法是转到“window”->“Extensions” 搜索框中输入urdf, 并启用 通过转至Isaac Utils -> Workflows -> URDF Importer菜单来访问 urdf 扩展。 表格中的 1,2,3 对应着…

VR全景展示的功能有哪些?适合用于哪些领域?

现如今&#xff0c;VR全景展示技术已经逐渐融入了我们的日常生活中&#xff0c;可能大部分人都还没有意识到VR全景是如何应用的&#xff0c;但其实VR全景针对多个行业的垂直领域都有一定的落地使用。在互联网高速发展的今天&#xff0c;多媒体所包含的种类也越来越多&#xff0…

SpringAOP复习

SpringAOP AOP为Aspect Oriented Programming的缩写&#xff0c;意为&#xff1a;面向切面编程。他是一种可以在不修改原来核心代码的情况侠给程序动态统一进行增强的一种技术 SpringAOP&#xff1a;批量对Spring容器中的bean方法做增强&#xff0c;并且这种增强不会与原来方…

Odoo16 实用功能之在Form视图的各个部位加入按钮

目录 1、 如何在form视图中的头部加上按钮 2、如何在form视图中的身体加上按钮 3、如何在notebook标签中加入按钮 1、 如何在form视图中的头部加上按钮 以CRM中的渠道form视图为例子介绍&#xff08;实现红框中的效果&#xff09; 直接在<header>标签里加入按钮即可 …

树莓派4B搭建开源NAS系统openmediavault

目录 搭建过程使用镜像准备硬件准备软件账号信息制作系统盘首次启动配置获取树莓派IP地址 ssh登录到树莓派上登录到openmediavualt连接到wifi 搭建过程 搭建过程参考链接两篇文章,已经搭建完毕.期间遇到一些坑,为了方便大家,我把搭建好的镜像和使用到的工具放在百度网盘共享了…

HashSet 和HashMap的区别、优缺点、使用场景

HashSet和HashMap是Java集合框架中的两个常用类&#xff0c;它们都用于存储和管理数据&#xff0c;但在使用方式、功能和性能上有很大的区别。 HashSet和HashMap的区别 区别一&#xff1a;用途不同 HashSet&#xff1a;HashSet是一个基于哈希表的集合&#xff0c;用于存储不…