使用JavaScript实现页面注册表单文本框验证方法

文章目录

文章目录

概要

整体架构流程

技术名词解释

代码展示:

小结

需要素材即使联系我我会陆续更新的!!


概要

提示:这里可以添加技术概要

发送验证码模块
②: 各个表单验证模块
③: 勾选已经阅读同意模块
④: 下一步验证全部模块
只要上面有一个input验证不通过就不同意提交        

整体架构流程

再次密码验证
如果本次密码不等于上面输入的密码则返回错误信息
其余同上
我同意模块
添加类 .icon-queren2 则是默认选中样式 可以使用 toggle切换类
表单提交模块
使用 submit 提交事件
如果没有勾选同意协议,则提示 需要勾选
classList.contains() 看看有没有包含某个类,如果有则返回true,么有则返回false
如果上面input表单 只要有模块,返回的是 false 则 阻止提交
 

技术名词解释

提示:这里可以添加技术名词解释

例如:

required 属性不能为空

正则 /^[a-zA-Z0-9-_]{6,20}

代码展示:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><title>小兔鲜儿 - 新鲜 惠民 快捷!</title><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="renderer" content="webkit" /><link rel="shortcut icon" href="./favicon.ico" /><link rel="stylesheet" href="./css/common.css" /><link rel="stylesheet" href="./css/register.css" /><linkrel="stylesheet"href="https://at.alicdn.com/t/font_2143783_iq6z4ey5vu.css" /></head><body><!-- 项部导航 --><div class="xtx_topnav"><div class="wrapper"><!-- 顶部导航 --><ul class="xtx_navs"><li><a href="./login.html">请先登录</a></li><li><a href="./register.html">免费注册</a></li><li><a href="./center-order.html">我的订单</a></li><li><a href="./center.html">会员中心</a></li><li><a href="javascript:;">帮助中心</a></li><li><a href="javascript:;">在线客服</a></li><li><a href="javascript:;"><i class="mobile sprites"></i>手机版</a></li></ul></div></div><!-- 头部 --><div class="xtx_header"><div class="wrapper"><!-- 网站Logo --><h1 class="xtx_logo"><a href="/">小兔鲜儿</a></h1><!-- 主导航 --><div class="xtx_navs"><ul class="clearfix"><li><a href="./index.html">首页</a></li><li><a href="./category01.html">生鲜</a></li><li><a href="./category01.html">美食</a></li><li><a href="./category01.html">餐厨</a></li><li><a href="./category01.html">电器</a></li><li><a href="./category01.html">居家</a></li><li><a href="./category01.html">洗护</a></li><li><a href="./category01.html">孕婴</a></li><li><a href="./category01.html">服装</a></li></ul></div><!-- 站内搜索 --><div class="xtx_search clearfix"><!-- 购物车 --><a href="./cart-none.html" class="xtx_search_cart sprites"><i>2</i></a><!-- 搜索框 --><div class="xtx_search_wrapper"><inputtype="text"placeholder="搜一搜"onclick="location.href='./search.html'" /></div></div></div></div><div class="xtx-wrapper"><div class="container"><!-- 卡片 --><div class="xtx-card"><h3>新用户注册</h3><form class="xtx-form"><div data-prop="username" class="xtx-form-item"><span class="iconfont icon-zhanghao"></span><input name="username" type="text" placeholder="设置用户名称" /><span class="msg"></span></div><div data-prop="phone" class="xtx-form-item"><span class="iconfont icon-shouji"></span><input name="phone" type="text" placeholder="输入手机号码  " /><span class="msg"></span></div><div data-prop="code" class="xtx-form-item"><span class="iconfont icon-zhibiaozhushibiaozhu"></span><input name="code" type="text" placeholder="短信验证码" /><span class="msg"></span><a class="code" href="javascript:;">发送验证码</a></div><div data-prop="password" class="xtx-form-item"><span class="iconfont icon-suo"></span><inputname="password"type="password"placeholder="设置6至20位字母、数字和符号组合" /><span class="msg"></span></div><div data-prop="confirm" class="xtx-form-item"><span class="iconfont icon-suo"></span><inputname="confirm"type="password"placeholder="请再次输入上面密码" /><span class="msg"></span></div><div class="xtx-form-item pl50"><i class="iconfont icon-queren"></i>已阅读并同意<i>《用户服务协议》</i></div><div class="xtx-form-item"><button class="submit">下一步</button><!-- <a class="submit" href="javascript:;">下一步</a> --></div></form></div></div></div><!-- 公共底部 --><div class="xtx_footer clearfix"><div class="wrapper"><!-- 联系我们 --><div class="contact clearfix"><dl><dt>客户服务</dt><dd class="chat">在线客服</dd><dd class="feedback">问题反馈</dd></dl><dl><dt>关注我们</dt><dd class="weixin">公众号</dd><dd class="weibo">微博</dd></dl><dl><dt>下载APP</dt><dd class="qrcode"><img src="./uploads/qrcode.jpg" /></dd><dd class="download"><span>扫描二维码</span><span>立马下载APP</span><a href="javascript:;">下载页面</a></dd></dl><dl><dt>服务热线</dt><dd class="hotline">400-0000-000<small>周一至周日 8:00-18:00</small></dd></dl></div></div><!-- 其它 --><div class="extra"><div class="wrapper"><!-- 口号 --><div class="slogan"><a href="javascript:;" class="price">价格亲民</a><a href="javascript:;" class="express">物流快捷</a><a href="javascript:;" class="quality">品质新鲜</a></div><!-- 版权信息 --><div class="copyright"><p><a href="javascript:;">关于我们</a><a href="javascript:;">帮助中心</a><a href="javascript:;">售后服务</a><a href="javascript:;">配送与验收</a><a href="javascript:;">商务合作</a><a href="javascript:;">搜索推荐</a><a href="javascript:;">友情链接</a></p><p>CopyRight &copy; 小兔鲜儿</p></div></div></div></div><script>!(function () {//       ①: 发送验证码模块const code = document.querySelector(".code");let falg = true;code.addEventListener("click", function () {if (falg) {falg = false;let i = 5;code.innerHTML = `0${i}秒后重新刷新`;let timeId = setInterval(function () {i--;code.innerHTML = `0${i}秒后重新刷新`;if (i === 0) {clearInterval(timeId);code.innerHTML = `重新获取`;falg = true;}}, 1000);}});})();//       需求②: 用户名验证(注意封装函数 verifyxxx) , 失去焦点触发这个函数// 正则 /^[a-zA-Z0-9-_]{6,10}$/// 如果不符合要求,则出现提示信息 并 return false 中断程序// 否则 则返回return trueconst username = document.querySelector("[name=username]");username.addEventListener("change", verifyusername);function verifyusername() {const reg = /^[a-zA-Z0-9-_]{6,10}$/;if (!reg.test(username.value)) {username.nextElementSibling.innerHTML = `输入6-10数字`;return false;}// username.nextElementSibling.innerHTML = `输入正确`;// username.nextElem  entSibling.style.color = `pink`;return true;}//2.2验证手机号const phonename = document.querySelector("[name=phone]");phonename.addEventListener("change", verifyphone);function verifyphone() {const regOne =/^1(3\d|4[5-9]|5[0-35-9]|6[567]|7[0-8]|8\d|9[0-35-9])\d{8}$/;const span = phonename.nextElementSibling;if (!regOne.test(phonename.value)) {span.innerHTML = `请输入正确的11位手机号`;return false;}span.innerHTML = "";return true;}//2.3验证码const codename = document.querySelector("[name=code]");codename.addEventListener("change", verifycode);function verifycode() {const regOne = /^\d{6}$/;const span = codename.nextElementSibling;if (!regOne.test(codename.value)) {span.innerHTML = `验证码格式不正确`;const random = parseInt(Math.random() * 10000 + 1).toString().padStart(6, "0");if (codename.value !== random) {span.innerHTML = `验证码输入不正确!`;}return false;}span.innerHTML = "";return true;}//2.4验证密码const passwordname = document.querySelector("[name=password]");passwordname.addEventListener("change", verifypsd);function verifypsd() {const regOne = /^[a-zA-Z0-9-_]{6,20}$/;const span = passwordname.nextElementSibling;if (!regOne.test(passwordname.value)) {span.innerHTML = `请正确输入6到20位数字`;return false;}span.innerHTML = "";return true;}const confirm = document.querySelector("[name=confirm]");confirm.addEventListener("change", verifypsdconfirm);function verifypsdconfirm() {const regOne = /^[a-zA-Z0-9-_]{6,20}$/;const span = confirm.nextElementSibling;if (confirm.value !== passwordname.value) {span.innerHTML = `两次密码不正确!`;return false;}span.innerHTML = "";return true;}// ②: 各个表单验证模块// ③: 勾选已经阅读同意模块const icon = document.querySelector(".icon-queren");icon.addEventListener("click", function () {icon.classList.toggle("icon-queren2");});// ④: 下一步验证全部模块const form = document.querySelector("form");form.addEventListener("submit", function (e) {//判断是否有这这个类if (!icon.classList.contains("icon-queren-2")) {alert("请勾选复选框!");e.preventDefault();if (!verifytext()) e.preventDefault(); //判断你输入的内容是否合法,如果不合法取反为true  执行if里面的代码   如果是合法取反为fashle  则不执行里面的代码if (!verifyphone()) e.preventDefault(); //判断你输入的内容是否合法,如果不合法取反为true  执行if里面的代码   如果是合法取反为fashle  则不执行里面的代码if (!verifypsd()) e.preventDefault(); //判断你输入的内容是否合法,如果不合法取反为true  执行if里面的代码   如果是合法取反为fashle  则不执行里面的代码if (!verifytext()) e.preventDefault(); //判断你输入的内容是否合法,如果不合法取反为true  执行if里面的代码   如果是合法取反为fashle  则不执行里面的代码if (!verifyconfirmname()) e.preventDefault(); //判断}});// 只要上面有一个input验证不通过就不同意提交</script></body>
</html>

小结

先阻止默认行为
Ø 如果没有勾选同意,则提示要勾选
Ø required 属性不能为空
Ø 假设登录成功
把用户名记录到本地存储中
同时跳转到首页 location.href

需要素材即使联系我我会陆续更新的!!
 

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

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

相关文章

【EI会议征稿中|航空航天领域】第二届航空航天与控制工程国际学术会议(ICoACE 2023)

第二届航空航天与控制工程国际学术会议&#xff08;ICoACE 2023&#xff09; 2023 2nd International Conference on Aerospace and Control Engineering 2023年第二届航空航天与控制工程国际学术会议&#xff08;ICoACE 2023&#xff09;将于2023年12月15-17日在江苏南京召开…

Selenium+Unittest+HTMLTestRunner框架更改为Selenium+Pytest+Allure(一)

背景&#xff1a;之前的框架&#xff0c;Selenium是3.x版本&#xff0c;现在更新到4.15版本后&#xff0c;一些写法如find_element_by_xxx 不再支持&#xff0c;改为find_element(By.xxx)的方式&#xff0c;同时由于Unittest不如Pytest在执行方面灵活&#xff08;比如只执行冒烟…

数据库安全运维系统厂家在深圳的有哪些?咨询电话多少?

IT小伙伴都知道&#xff0c;数据库安全运维至关重要&#xff0c;因为随着信息技术的不断发展&#xff0c;数据库已经成为企业存储、管理和处理数据的关键平台&#xff0c;数据库承载着企业不少数据资产。因此使用数据库安全运维系统是必要的。那你知道数据库安全运维系统厂家在…

计算机网络:可靠数据传输(rdt)、流水协议、窗口滑动协议

文章目录 前言一、Rdt1.Rdt1.02.Rdt2.03.Rdt2.14.Rdt2.25.Rdt3.0 二、流水线协议1.滑动窗口&#xff08;slide window&#xff09;协议发送窗口接收窗口正常情况下的2个窗口互动异常情况下GBN的2个窗口互动异常情况下SR的2窗口互动GBN协议和SR协议的异同 2.小结 总结 前言 Rdt…

宝塔上安装mysql遇到的问题

宝塔上安装mysql遇到的问题 文章目录 宝塔上安装mysql遇到的问题一、下载mysql二、启动报错三、设置密码四、解决报错bash未找到命令mysql五、继续修改root密码五、宝塔中设置端口六、使用连接工具连接数据库 一、下载mysql 宝塔软件商店里下载mysql&#xff0c;然后点击启动。…

AR技术详解

1.AR技术平台 1.手机端 2.AR眼镜端 3.WebAR。 2.AR基础技术应用 1.平面检测技术 2.模型识别技术 3.图片识别技术 4.AR云&#xff08;云锚点&#xff09;技术 5.人脸检测技术 3.主要AR技术SDK 1.苹果ARKit&#xff0c;谷歌ARCore。 优点&#xff1a;推荐使用Unity开发&#xf…

ELasticsearch:什么是语义搜索?

语义搜索定义 语义搜索是一种解释单词和短语含义的搜索引擎技术。 语义搜索的结果将返回与查询含义匹配的内容&#xff0c;而不是与查询中的单词字面匹配的内容。 语义搜索是一组搜索引擎功能&#xff0c;其中包括根据搜索者的意图及其搜索上下文理解单词。 此类搜索旨在通过…

python自动化操作:批量处理照片尺寸并输出到word文档中【第14篇—python-照片尺寸批量处理输出】

文章目录 一.背景二.需求三.实现源码3.1 项目结构3.2 源码3.3 核心调节照片大小 四.代码解释五.实现效果六.心得总结 一.背景 在当今数字化时代&#xff0c;照片处理和文档编辑是许多领域中不可或缺的任务。从个人创作到企业文档&#xff0c;人们经常需要快速而有效地处理大量…

Linux IO多路转接之epoll

文章目录 一、epoll初识 二、epoll的相关系统调用 1.epoll_create 2.epoll_ctl 3.epoll_wait 三、epoll工作原理 四、epoll的工作方式 本文主要介绍了epoll内部工作机制&#xff0c;如何达到高性能的多路转接。技术有限&#xff0c;如有错误请指正。参考文献&#xff1a;…

【Redis】Redis 的学习教程(十三)Redis 各场景

由于Redis 支持比较丰富的数据结构&#xff0c;因此他能实现的功能并不仅限于缓存&#xff0c;而是可以运用到各种业务场景中&#xff0c;开发出既简洁、又高效的系统 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-bo…

第三节:提供者、消费者、Eureka

一、 提供者 消费者&#xff08;就是个说法、定义&#xff0c;以防别人叭叭时听不懂&#xff09; 服务提供者&#xff1a;业务中被其他微服务调用的服务。&#xff08;提供接口给其他服务调用&#xff09;服务消费者&#xff1a;业务中调用其他微服务的服务。&#xff08;调用…

QThread之moveToThread用法

简介 使用moveToThread函数的流程如下&#xff1a; 1、创建一个类继承自QObject类或其子类&#xff0c;并在其中定义所要执行的多个任务&#xff0c;执行多个任务就要定义相应的信号。 2、任务通过moveToThread指定所要执行的线程。 3、线程通过start启动 4、通过信号与槽机制…

【AI绘画】万字长文——(超详细)ControlNet的详细介绍使用Stable Diffusion的艺术二维码完全生成攻略

目录 前言一、名词解释1-1、Stable Diffusion介绍1-2、ControlNet介绍1-2-1、ControlNet介绍&工作原理1-2-2、ControlNet控制方法介绍 1-3、案例分析1-3-1、室内装修设计1-3-2、品牌创意海报 1-4、stable-diffusion-webui 的参数解释 二、生成方法2-1、图像到图像2-1-1、二…

Python使用netmiko配置华为交换机

一、netmiko介绍 1.更适合网络设备的自动化运维模块。 二、场景 1、批量查询 2、批量配置变更、备份 三、项目地址 GitHub - ktbyers/netmiko: Multi-vendor library to simplify Paramiko SSH connections to network devices 三、使用步骤 1.安装netmiko pip install ne…

D6208单片双向马达驱动电路国产芯片,工作电源电压范围宽(4.5V~15.0V),内设保护二极管采用SOP8封装

D6208 是一块单片双向马达驱动电路&#xff0c;它使用TTL电平的逻辑信号就能控制卡式录音机和其它电子设备中的双向马达。该电路由一个逻辑部分和一个功率输出部分组成。逻辑部分控制马达正、反转向及制动&#xff0c;功率输出部分根据逻辑控制能提供100mA&#xff08;典型值&a…

腾讯地图系列(二):微信小程序添加插件(三种方法)以及插件AppId获取

目录 第一章 前言 第二章 添加插件 2.1 微信小程序添加插件方法一&#xff08;微信公众平台添加插件&#xff09; 2.2 微信小程序添加插件方法二&#xff08;通过项目配置添加插件&#xff09; 2.3 微信小程序添加插件方法三&#xff08;微信公众平台服务市场添加插件&…

spring mvc理解

spring mvc M&#xff1a;model 模型 V&#xff1a;view 视图 C&#xff1a;controller 控制器 S: service 服务处理 D: Dao 数据持久化 视图 我理解就是web页面&#xff0c;帮助用户调用后端接口。 前后端分离之后&#xff0c;view似乎就和后端没什么关系了。 模型 格式…

zabbix6.4监控交换机发现ICMP报错Ping item must have target or host interface specified

报错信息&#xff1a; 查看监控项&#xff1a; 修改键值&#xff1a; 保存再次检查&#xff0c;发现又报错/usr/sbin/fping: [2] No such file or directory 原因是&#xff0c;zabbix-server上没有安装fping工具 解决方法&#xff1a;yum install fping -y 之后数据采集正常…

中建信息携手麒麟软件共建生态 助推华南区数字经济建设

这里写自定义目录标题 日前&#xff0c;中建信息携手麒麟软件在广州共同举办了“2023年麒麟软件华南渠道大会”&#xff0c;与来自广东、广西、海南各地市近300位渠道合作伙伴代表共聚一堂&#xff0c;于交流探讨中凝心聚力&#xff0c;亦探新机、启新程、谋新篇。 共聚大会&am…

【unity3D】Transform组件(如何访问和获取Transform组件)

&#x1f497; 未来的游戏开发程序媛&#xff0c;现在的努力学习菜鸡 &#x1f4a6;本专栏是我关于游戏开发的学习笔记 &#x1f236;本篇是unity的Transform组件 Transform组件 基础知识介绍三个成员变量常用属性扩展 Transform的相关查找方法静态方法 基础知识 介绍 在Unit…