JavaScript的综合案例

案例要求:

实现一个表单验证

1.当输入框失去焦点时,验证输入的内容是否符合要求

2.当点击注册按钮时,判断所有输入框的内容是否都符合要求,如果不符合要求阻止表单提交

简单的页面实现

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>欢迎注册</title>
</head>
<body><h1>欢迎注册</h1><form action="#" id="register"><table><tr><td>用户名</td><td><input type="text" name="username" id="username" ><!-- 先设置为隐藏格式 --><span id="uwername_err" style="display: none;" >用户名不符合规则</span></td></tr><tr><td>密码</td><td><input type="password"  name="password" id="password"><span id="password_err" style="display: none;" >密码不符合规则</span></td></tr><tr><td>电话</td><td><input type="text" name="tel" id="tel"><span id="tel_err" style="display: none;" >电话不符合规则</span></td></tr></table><input type="button" value="提交"></form></body>
</html>

 

1.当输入框失去焦点时,验证输入的内容是否符合要求

我们先设置用户名的事件,当鼠标离焦该元素时,触发函数

<tr><td>用户名</td><td><!-- //给用户框元素绑定一个离焦事件,当鼠标离开该元素就触发函数 --><input type="text" name="username" id="username" onblur="checkUsername()"><!-- 先设置为隐藏格式 --><span id="uwername_err" style="display: none;" >用户名不符合规则</span></td></tr>

 checkUsername函数的实现

 <script>function checkUsername(){//获取用户框输入的值let usernameValue= document.getElementById("username").value;//创建正则对象// let regex=new RegExp("^\\w{6,10}$");let regex=/^\w{6,10}$/;//判断输入的值是否符合正则if(regex.test(usernameValue)){
//重现设置为隐藏document.getElementById("uwername_err").style.display="none";return true;}else{//不满足,把用户名的span标签显示出来document.getElementById("uwername_err").style.display="block";document.getElementById("uwername_err").style.color="red";//阻止表单提交return false;}}</script>

结果:

设置密码的绑定事件

 <tr><td>密码</td><td><input type="password"  name="password" id="password" onblur="checkPassword()"><span id="password_err" style="display: none;" >密码不符合规则</span></td></tr>

 checkPassword函数

   <script>function checkPassword(){//获取密码框输入的值let passwordValue=document.getElementById("password").value;//创建正则对象let regex=/^.{6,12}$/;//判断是否满足if(regex.test(passwordValue)){//满足,把密码的span标签内容隐藏document.getElementById("password_err").style.display="none";//提交表单return true;}else{//不满足document.getElementById("password_err").style.display="block";document.getElementById("password_err").style.color="red";return false;}}
</script>

 设置电话的绑定事件

<tr><td>电话</td><td><input type="text" name="tel" id="tel" onblur="checkTel()"><span id="tel_err" style="display: none;" >电话不符合规则</span></td></tr>

checkTel函数

 <script>function checkTel(){//获取电话框输入的值let telValue=document.getElementById("tel").value;//创建正则对象let regex=/^1[3-9]\d{9}$/;if(regex.test(telValue)){document.getElementById("tel_err").style.display="none";return true;}else{//不满足document.getElementById("tel_err").style.display="block";document.getElementById("tel_err").style.color="red";return false;}}
</script> 

2.当点击注册按钮时,判断所有输入框的内容是否都符合要求,如果不符合要求阻止表单提交 

我们现在实现的功能有一个框不符合规则也可以提交数据成功 

<script>
//给form表单绑定提交事件document.getElementById("register").onsubmit=function(){//三个框只要有一个非法就组织表单提交return checkPassword()&&checkTel()&&checkUsername();}
</script>

说明:onsubmit的匿名函数返回false就不提交数据

结果:有一个不符合,就不提交数据

说明:全部符合,才提交数据

浏览器debug

1.在页面打开控制台

2.打开源代码 

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

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

相关文章

【Node.js】事件循环

Node.js 中的事件循环是基于单线程的异步非阻塞模型。它是 Node.js 的核心机制&#xff0c;用于处理非阻塞的 I/O 操作和异步事件。 1. Node.js 事件循环介绍 Node.js 的事件循环是一个 Event Loop&#xff0c;通过异步回调函数的方式实现非阻塞的处理。事件循环会在主线程上…

港股大反攻结束了吗?

‘港股长线见顶了吗&#xff1f;今天开盘就是最高点&#xff0c;然后一路跳水&#xff0c;市场又是一片恐慌。到底是健康的技术性回调&#xff0c;还是市场已经见顶&#xff1f; 港股此轮“大反攻”中&#xff0c;科网股表现十分亮眼。今日港股盘后&#xff0c;阿里巴巴、腾讯…

【Shell】Shell编程之函数

目录 1.Shell函数定义 2.Shell函数的作用 3.函数返回值 4.函数传参 5.函数变量的作用范围 案例 1.Shell函数定义 格式1 function 函数名 { 命令序列 } 格式2 函数名() { 命令序列 } 2.Shell函数的作用 使用函数可以避免代码重复 使用函数可以将大的工程分割为若…

DeepSort / Sort 区别

推荐两篇博文,详细介绍了deepsort的流程及代码大致讲解: https://blog.csdn.net/qq_48764574/article/details/138816891 https://zhuanlan.zhihu.com/p/196622890 DeepSort与Sort区别: 1、Sort 算法利用卡尔曼滤波算法预测检测框在下一帧的状态,将该状态与下一帧的检测结…

什么是工具? 从语言模型视角的综述

24年3月CMU和上海交大的论文“What Are Tools Anyway? A Survey from the Language Model Perspective”。 到底什么是工具&#xff1f; 接下来&#xff0c;工具在哪里以及如何帮助语言模型&#xff1f; 在综述中&#xff0c;对语言模型使用的外部程序工具进行了统一定义&…

【RAG 论文】UPR:使用 LLM 来做检索后的 re-rank

论文&#xff1a;Improving Passage Retrieval with Zero-Shot Question Generation ⭐⭐⭐⭐ EMNLP 2022, arXiv:2204.07496 Code: github.com/DevSinghSachan/unsupervised-passage-reranking 论文&#xff1a;Open-source Large Language Models are Strong Zero-shot Query…

智慧公厕系统:改变“上厕所”体验的科技革新

公共厕所是城市建设中不可或缺的基础设施&#xff0c;然而&#xff0c;由于较为落后的管理模式&#xff0c;会常常存在着管理不到位、脏乱差的问题。为了改善公厕的使用体验&#xff0c;智慧公厕系统应运而生&#xff0c;并逐渐成为智慧城市建设的重要组成部分。本文将以智慧公…

“打工搬砖记”中首页的功能实现(一)

文章目录 打工搬砖记秒薪的计算文字弹出动画根据时间数字变化小结 打工搬砖记 先来一个小程序首页预览图&#xff0c;首页较为复杂的也就是“秒薪”以及弹出文字的动画。 已上线小程序“打工人搬砖记”&#xff0c;进行预览观看。 秒薪的计算 秒薪计算公式&#xff1a;秒薪 …

特产销售|基于Springboot+vue的藏区特产销售平台(源码+数据库+文档)​

目录 基于Springbootvue的藏区特产销售平台 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2管理员功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大厂码农|毕设布道…

Golang SDK安装

windows环境安装 1.链接: 下载地址 2.安装SDK 检查环境变量&#xff1a; 3.开启go modules,命令行执行一下命令&#xff1a; go env -w GO111MODULEon4.设置国内代理&#xff0c;命令行执行一下命令&#xff1a; go env -w GOPROXYhttps://proxy.golang.com.cn,https:/…

如何使用恢复模式修复Mac启动问题?这里提供详细步骤

如果你的Mac无法启动,不要惊慌,Mac有一个隐藏的恢复模式,你可以使用它来诊断和修复任何问题,或者在需要时完全重新安装macOS。以下是如何使用它。 如何在Mac上启动到恢复模式 你需要做的第一件事是启动到恢复模式。尽管操作说明会因你使用的Mac电脑而异,但幸运的是,启动…

14.正交向量与子空间

文章目录 1. 四个子空间的相互关系2. 正交向量3. 无解方程求解 1. 四个子空间的相互关系 对于m行n列的矩阵A来说&#xff0c;矩阵A的行空间的秩等于矩阵A的列空间的秩 R a n k ( A ) R a n k ( A T ) r (1) Rank(A)Rank(A^T)r\tag{1} Rank(A)Rank(AT)r(1) A X 0 ; A T X …