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.打开源代码 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【IDE】com.intellij.debugger.engine.evaluation.EvaluateException

目录标题 报错重现代码分析解决方式 报错重现 Error during generated code invocation com.intellij.debugger.engine.evaluation.EvaluateException: Method threw java.lang.NullPointerException exception.代码分析 //ls来自上下文 ls.stream().map(m->m.getRewardTy…

tarjan学习

1.割点&#xff08;必须经过&#xff09;&#xff1a;当时&#xff0c;y是一个割点&#xff0c;x是y的一个子节点&#xff0c;当没有点x时&#xff0c;y无法访问其他点 2.割边&#xff08;必须经过&#xff09;&#xff1a;当时&#xff0c;y不经过这条边无法到达x&#xff0c…

深入了解 npm:Node.js 包管理工具详解

文章目录 一、npm 基本概念1.1 什么是 npm&#xff1f;1.2 package.json 文件 二、npm 常用命令2.1 初始化项目2.2 安装依赖2.2.1 安装单个包2.2.2 全局安装包2.2.3 安装开发依赖 2.3 移除依赖2.4 更新依赖2.5 查看已安装的包2.6 发布包 三、npm 高级用法3.1 使用 npm scripts3…

嵌入式学习-M4的基本定时器

基本介绍 框图分析 时钟选择 计数器结构 开启重装载值寄存器的影子寄存器的工作时序图 未开启重装载值寄存器的影子寄存器的工作时序图 更新事件以及中断 相关寄存器 相关库函数

RK3566(泰山派):GP7101背光驱动

RK3566&#xff08;泰山派&#xff09;&#xff1a;GP7101背光驱动 文章目录 RK3566&#xff08;泰山派&#xff09;&#xff1a;GP7101背光驱动GP7101背光驱动电路配置i2c1设备树创建驱动编写Makefilegp7101_bl.c驱动触摸I2C驱动框架。驱动中的结构体probe函数devm_backlight_…

探索数据结构:堆的具体实现与应用

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;数据结构与算法 贝蒂的主页&#xff1a;Betty’s blog 1. 堆的概念 堆(Heap)是计算机科学中一类特殊的数据结构。堆通常是一个…

SpringBoot项目的项目部署全过程

一、前端 安装nginx 1.将提前准备好的nginx的安装包上传到Linux中/opt目录下(我用的是Xftp) 2.解压 2.1:在xshell中解压该文件: tar -zxvf nginx-1.20.1.tar.gz 2.2:进入解压后的目录 cd nginx-1.20.1/ 2.3:安装需要的依赖 yum -y install zlib zlib-devel openssl openssl-de…

Keil编程不同驱动文件引用同一个常量的处理方法

基础不牢&#xff0c;地动山摇&#xff0c;最近单片机编程又遇到一个基础问题。 我在头文件中定义了一个常量同时给两个驱动文件使用&#xff0c;封装的时候编译没问题&#xff0c;但是在main函数中引用驱动函数的时候就出现了重定义的问题&#xff0c;如下如所示。 解决方法很…

8.基于鱼鹰优化算法(OOA)优化VMD参数(OOA-VMD)

代码原理 鱼鹰优化算法&#xff08;Osprey Optimization Algorithm, OOA&#xff09;是一种基于仿生学原理的启发式优化算法&#xff0c;它模拟了鱼鹰觅食的行为&#xff0c;通过调整搜索空间中的个体位置来优化目标函数。 鱼鹰优化算法可参考&#xff1a;鱼鹰优化算法(Ospre…

Network Compression

听课&#xff08;李宏毅老师的&#xff09;笔记&#xff0c;方便梳理框架&#xff0c;以作复习之用。本节课主要讲了Network Compression&#xff0c;包括为什么要压缩&#xff0c;压缩的主要手段&#xff08;pruning,knowledge distillation,parameter quantization,architect…

C# 下载安装,使用OfficeOpenXml

下载安装OfficeOpenXml模块 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Reflection.Emit; using System.Text; using System.Text.RegularEx…

【大道至简】官方兼容到android13+的获取系统屏幕高度, statusbar,navBar

android在屏幕高度和app高度&#xff0c;statusbar, navigationbar的高度处理上&#xff0c;迭代了好多版本。 android11&#xff0c; android12都有新的api和过时的api标记。 涉及的api类似如下&#xff1a; windowManager&#xff0c;defaultDisplay, Context.display, Deco…

uniapp开发安卓app使用文字转语音技术

在 UniApp 开发安卓应用时&#xff0c;要实现文字转语音&#xff08;Text-to-Speech, TTS&#xff09;技术&#xff0c;你可以利用 UniApp 的跨平台能力结合原生模块或第三方服务来实现。以下是一些建议的步骤和方法&#xff1a; 1. 使用 UniApp 原生模块&#xff08;如果支持…

怎么得到所有大写字母/小写字母组成的字符串

有时候&#xff0c;可能需要获取a~z、A~Z组成的26个字母的字符串&#xff0c;这篇文章介绍一种简单的方法。 只需要几句简单到不能再简单的代码&#xff01;你不会还在傻傻地一个个字母敲吧~ /*** author heyunlin* version 1.0*/ public class Example {/*** 小写字母*/priv…

通信指挥类装备(多链路聚合设备)-应急通信指挥解决方案

现场通信指挥系统是一种功能全面的便携式音视频融合指挥通信平台&#xff0c;可实现现场应急救援指挥、多种通信手段融合、现场通信组网等功能&#xff0c;是现场指挥系统的延伸。 多链路聚合设备&#xff0c;是一款通信指挥类装备&#xff0c;具有 4G/5G&#xff0c;专网&…

ResNeXt

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊# 前言 前言 前面已经学习了resnet家族已经inception卷积网络&#xff0c;还简单了解了SE注意力机制&#xff0c;今天学习resnet和inception的组合ResNeXt。 …

Nodejs笔记2

模块化 模块化初体验 模块暴露数据 导入模块 fs 写绝对路径 require写相对路径不会受到影响 ./../不能省略 js 和json文件后缀可以省略 如果存在 命名相同的js和json文件&#xff0c;优先导入js文件 导入文件夹时的情况 require导入模块的基本流程 commonJS模块…

Nginx的正向代理与反向代理

你好呀&#xff0c;我是赵兴晨&#xff0c;文科程序员。 今天&#xff0c;我们将一起了解什么是Nginx的正向代理&#xff1f;什么是Nginx的反向代理&#xff1f;并实际动手实践。 以下内容都是满满的干货&#xff0c;绝对不容错过。我建议先收藏这篇文章&#xff0c;然后找一…

前端CSS3基础1(新增长度单位,盒子模型,背景,边框,文本属性,渐变,字体,2D变换,3D变换)

前端CSS3基础1&#xff08;新增长度单位&#xff0c;盒子模型&#xff0c;背景&#xff0c;边框&#xff0c;文本属性&#xff0c;渐变&#xff0c;字体&#xff0c;2D变换&#xff0c;3D变换&#xff09; CSS3 新增长度单位CSS3 新增盒子模型相关属性box-sizing怪异盒模型box-…

【计算机毕业设计】基于SSM+Vue的线上旅行信息管理系统【源码+lw+部署文档+讲解】

目录 1 绪论 1.1 研究背景 1.2 设计原则 1.3 论文组织结构 2 系统关键技术 2.1JSP技术 2.2 JAVA技术 2.3 B/S结构 2.4 MYSQL数据库 3 系统分析 3.1 可行性分析 3.1.1 技术可行性 3.1.2 操作可行性 3.1.3 经济可行性 3.1.4 法律可行性 3.2系统功能分析 3.2.1管理员功能分析 3.2.…