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.mzph.cn/pingmian/12218.shtml

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

相关文章

在阿里云服务器上安装MySQL

目录 一、先卸载不需要的环境 1.关闭MySQL服务 2.查看安装包以及卸载安装包 3.依次卸载所有包 4. 获取mysql官⽅yum源 二、安装&#xff08;密钥过期解决方法&#xff09; 三、启动并进入 关于MySQL MySQL是一个广泛使用的开源关系型数据库管理系统&#xff08;RDBMS&…

Linux中如何配置虚拟机网络(NAT方法)

首先我们要在Linux中找到配置文件的路径/etc/sysconfig/network-scripts/&#xff0c;然后找到配置文件的名称ifcfg-xxx&#xff08;如&#xff1a;ifcfg-ens33&#xff09;&#xff0c;然后打开这个文件内 容如下&#xff1a; TYPEEthernet # 指定网卡类型是以太网 BOOTPROT…

【平衡二叉树】AVL树(双旋)

&#x1f389;博主首页&#xff1a; 有趣的中国人 &#x1f389;专栏首页&#xff1a; C进阶 &#x1f389;其它专栏&#xff1a; C初阶 | Linux | 初阶数据结构 小伙伴们大家好&#xff0c;本片文章将会讲解AVL树的左双选和右双旋的相关内容。 如果看到最后您觉得这篇文章写…

C++基础语法之数组

一、一维数组 在C中&#xff0c;一维数组是一系列具有相同数据类型的元素的集合。它们在内存中是连续存储的&#xff0c;可以通过索引访问每个元素。 一维数组的声明形式如下&#xff1a; 数据类型 数组名[常量表达式] 例如&#xff1a; // 声明一个能存储10个整数的数组 in…

【AI学习】对指令微调(instruction tuning)的理解

前面对微调&#xff08;Fine-tuning&#xff09;的学习中&#xff0c;提到指令微调。当时&#xff0c;不清楚何为指令微调&#xff0c;也一直没来得及仔细学习。 什么是指令微调&#xff1f;LLM经过预训练后&#xff0c;通过指令微调提升模型的指令遵循能力。所谓指令&#xf…

车载GPT爆红前夜:一场巨头竞逐的游戏

在基于GPT-3.5的ChatGPT问世之前&#xff0c;OpenAI作为深度学习领域并不大为人所看好的技术分支玩家&#xff0c;已经在GPT这个赛道默默耕耘了七八年的时间。 好几年的时间里&#xff0c;GPT始终没有跨越从“不能用”到“能用”的奇点。转折点发生在2020年6月份发布的GPT-3&a…

【STM32】状态机实现定时器按键消抖,处理单击、双击、三击、长按事件

目录 一、简单介绍 二、模块与接线 三、cubemx配置 四、驱动编写 状态图 按键类型定义 参数初始化/复位 按键扫描 串口重定向 主函数 五、效果展示 六、驱动附录 key.c key.h 一、简单介绍 众所周知&#xff0c;普通的机械按键会产生抖动&#xff0c;可以采取硬件…

注意力机制篇 | YOLOv8改进之在C2f模块引入反向残差注意力模块iRMB | CVPR 2023

前言:Hello大家好,我是小哥谈。反向残差注意力模块iRMB是一种用于图像分类和目标检测的深度学习模块。它结合了反向残差和注意力机制的优点,能够有效地提高模型的性能。在iRMB中,反向残差指的是将原始的残差块进行反转,即将卷积操作和批量归一化操作放在了后面。这样做的好…

软件工程期末复习(6)需求分析的任务

需求分析 需求分析的任务 “建造一个软件系统的最困难的部分是决定要建造什么……没有别的工作在做错时会如此影响最终系统&#xff0c;没有别的工作比以后矫正更困难。” —— Fred Brooks 需求难以建立的原因&#x…

矩阵相关运算1

矩阵运算是线性代数中的一个核心部分&#xff0c;它包含了许多不同类型的操作&#xff0c;可以应用于各种科学和工程问题中。 矩阵加法和减法 矩阵加法和减法需要两个矩阵具有相同的维度。操作是逐元素进行的&#xff1a; CAB or CA−B其中 A,B 和 C 是矩阵&#xff0c;且 C…

7nm项目之模块实现——02 Placeopt分析

一、Log需要看什么 1.log最后的error 注意&#xff1a;warnning暂时可以不用过于关注&#xff0c;如果特别的warning出现问题&#xff0c;在其他方面也会体现 2.run time 在大型项目实际开发中&#xff0c;周期一般较长&#xff0c;可能几天过这几周&#xff0c;所以这就需要…

探讨 cs2019 c++ 的STL 库中的模板 conjunction 与 disjunction

&#xff08;1&#xff09;在 STL 库源码中这俩模板经常出现&#xff0c;用来给源码编译中的条件选择&#xff0c;模板的版本选择等提供依据。先给出其定义&#xff1a; 以及&#xff1a; 可以得出结论&#xff1a; conj 是为了查找逻辑布尔型模板参数中的第一个 false &#x…

vs2019中__cplusplus一直显示199711

vs2019中__cplusplus一直显示199711&#xff0c;如何修改&#xff1f; 打开属性->C/C->命令行&#xff0c;其他选项&#xff0c;输入&#xff1a;/Zc:__cplusplus

aws s3

列出关键点 创建s3 设置s3策略&#xff0c;所有人访问 { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor1", "Effect": "Allow", …

C#窗体程序设计笔记:如何调出控件工具箱,并设置控件的属性

文章目录 调出控件工具箱设置控件属性 调出控件工具箱 使用Visual Studio打开C#解决方案后&#xff0c;初始界面如下图所示&#xff1a; 接着&#xff0c;在上方的菜单栏依次选择“视图”“工具箱”&#xff0c;即可打开工具箱&#xff0c;如下图所示&#xff1a; 设置控件属…

Android开发,日志级别

5个日志级别 Verbose (VERBOSE): 这是最低的日志级别&#xff0c;用于输出最为详尽的信息&#xff0c;包括开发和调试过程中的各种细节。在Log类中对应的方法是Log.v()。Debug (DEBUG): 此级别用于输出调试信息&#xff0c;帮助开发者理解程序运行流程或状态。通过Log.d()方法…

产品品牌CRUD

文章目录 1.renren-generator生成CRUD1.数据库表设计1.数据表设计2.分析 2.代码生成器生成crud1.查看generator.properties&#xff08;不需要修改&#xff09;2.修改application.yml 连接的数据库修改为云数据库3.启动renren-generator模块4.浏览器访问 http://localhost:81/5…

解决使用Vue.js前端与Flask后端API交互时跨源资源共享问题

我在使用flask以及Vue做一个项目时遇到了Vue前端与Flask后端API交互的问题就是前端获取不到后端返回的数据&#xff0c;报错&#xff1a; 上网查说是跨域问题&#xff0c;于是找了一些解决办法&#xff0c;就是可以通过设置响应头的 Access-Control-Allow-Origin 字段来允许所有…

易货模式:引领交易新潮流,实现资源高效利用

随着全球经济的繁荣和科技的日新月异&#xff0c;传统的交易模式正面临革新。在追求高效、便捷与环保的当下&#xff0c;易货模式作为一种新兴的交易方式&#xff0c;逐渐崭露头角&#xff0c;受到越来越多人的青睐。 易货模式&#xff0c;简而言之&#xff0c;就是通过平台或在…

知乎广告推广投放流程以及价格?

知乎作为一个拥有庞大高质量用户群体的知识分享平台&#xff0c;成为了众多品牌不可忽视的广告投放渠道。知乎不仅汇聚了各行各业的专业人士&#xff0c;其独特的社区氛围也为品牌提供了精准触达目标受众的机会。知乎广告推广的投放流程、费用标准&#xff0c;云衔科技提供的专…