JQuery-表单验证

article/2025/10/1 4:03:41

1.什么是表单验证?

表单验证是javascript中的高级选项之一。
可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证。

2.为什么表单验证?

减轻服务器的压力 。

保证输入的数据符合要求。

3.案例

实现表单验证的案例在这里用GiWiFI页面进行实现。其由三部分构成

1.登录页面

2.登陆成功页面

3.注册页面

4.效果图

1.如果账号和密码为空或与所写的条件不符,则无法登录。

 2.下方为输入符合的条件。

 3.点击认证上网则进入登陆成功页面。

 4.修改密码时无输入信息点击修改密码则修改失败。

 5.输入信息后,点击修改密码时则弹出密码修改成功并进入登录页面。

5.实现思路

首先登录、登陆成功、修改密码三个页面相互串联:登录页面正确进入登陆成功页面,点击登录页面的忘记密码进入修改密码,修改成功进入登录页面。

1.登录页面

       第一步: 新建一个验证账号的函数A

        在新建一个验证账号的函数B

        在函数内写入功能:

                获取与其对应的两个验证的value值及文本提示框(即红字部分)。

                在写入正则表达式

                最后判断校验

      第二步:  将函数绑定触发事件->失去焦点事件

     第三步:用表单提交事件(submit)判断是否提交页面

2.登陆成功页面

       在body中创建h1标签并写入(认证成功!欢迎使用!!!)即可;

3.修改密码页面

        大致与登录页面相同

只说一下获取随机验证码和密码是否修改成功的判断

验证码:   

        第一步:为获取验证码按钮写一个点击事件click,在里面用for循环获取随机数并赋给按钮前方的(input)框。

        第二步:新建一个验证账号的函数C,获取(input)的value值与条件进行对比,相同则true相同则false。

密码:

        为修改密码按钮添加点击事件,将函数A、B、C、赋给变量a、b、c,用判断如果a、b、c结果都是正确则修改成功,如果a、b、c任何一个结果错误则修改失败。

6.代码

1.登录页面

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>上网登录验证</title><script src="../../js/jquery-1.12.4.js"></script>
</head>
<style>*{margin: 0;padding: 0;}body{margin: 180px 390px;}#header_1{width: 650px;height: 40px;line-height: 40px;background: #fee26f;text-indent: 20px;}#header_1>img{vertical-align: middle;}#header_2{width: 650px;background: #fee26f;}#header_2>img{margin-left: 3px;}#header_3{width: 620px;margin-left: 15px;text-align: center;background: white;}#header_3>a{margin-left: 20px;color: #977363;}/*主体*/section{width: 650px;height: 270px;background: #fee26f;}form{width: 620px;text-align: center;background: white;margin-left: 15px;}form>p,div{text-align: center;}p>input{width: 300px;height: 30px;line-height: 30px;margin-top: 10px;}select{width: 300px;height: 30px;line-height: 30px;margin-top: 10px;}form>div{margin-top: 10px;}div>input{margin-left: 38px;}div>a{color: #fee26f;text-decoration: none;margin-left: 145px;}p:last-of-type>input{width: 300px;height: 50px;line-height: 50px;margin-left: 37px;}#w{width: 650px;background: #fee26f;}#checkPhone{position: relative;top: -254px;left: 505px;}#checkPass{position: absolute;top: 455px;left: 895px;}
</style>
<body><header><div id="header_1"><img src="../../img/GiWiFi-LOGO.jpg" alt=""></div><div id="header_2"><img src="../../img/GiWiFi-header1.jpg" alt=""></div><div id="w"><div id="header_3"><a href="#">注册账号</a><a href="#">上网充值</a><a href="#">绑定宽带</a></div></div></header><section><form action="index1.html" method="post" id="form_one"><p><span>账号:</span><input type="text" id="first"></p><p><span>密码:</span><input type="password" id="pass"></p><p><span>服务:</span><select name="fu" id="FUwu"><option value="普通用户">普通用户</option><option value="中国移动">中国移动</option><option value="中国联通">中国联通</option></select></p><p><span>网卡:</span><select name="WAN" id="wangKA"><option value="无线">无线</option><option value="网卡1">网卡1</option><option value="网卡2">网卡2</option></select></p><div><input type="checkbox" id="ji" checked="checked"><label for="ji">记住密码</label><a href="text.html">忘记密码?</a></div><p><input type="image" src="../../img/button1.jpg"></p></form></section><span id="checkPhone" style="color: red"></span><span id="checkPass" style="color: red"></span>
</body>
<script>$(document).ready(function () {//绑定失去焦点事件$("#first").blur(checkPhone);$("#pass").blur(checkPwd1);//表单提交判断$("#form_one").submit(function () {var flag = true;if (!checkPwd1()) {flag = false;}if (!checkPhone()) {flag = false;}$("form input").val("");return flag;});//验证账号的方法function checkPhone() {var phone = $("#first").val();var checkPhone = $("#checkPhone");var phones= /^1\d{10}$/;checkPhone.html("");if (phones.test(phone)==false){checkPhone.html("账号格式错误!");return false}return true}//验证密码的方法function checkPwd1() {var $pwd = $("#pass").val();var $checkPwd1 = $("#checkPass");var paws = /^[0-9]{6,12}$/;$checkPwd1.html("");if (paws.test($pwd)==false){$checkPwd1.html("密码格式错误!");return false}return true}})
</script>
</html>

2.登录成功页面

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>成功页面</title>
</head>
<body><h1>认证成功!欢迎使用!!!</h1>
</body>
</html>

3.修改密码页面

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>修改密码</title><script src="../../js/jquery-1.12.4.js"></script>
</head>
<style>*{margin: 0;padding: 0;}img:nth-of-type(1){width: 400px;height: 300px;}body{width: 400px;margin: 100px 500px;}section{width: 400px;background: #ededed;}p>input{margin-top: 15px;margin-left: 25px;width: 350px;height: 40px;line-height: 40px;text-indent: 20px;}p:nth-of-type(2)>input{width: 250px;height: 40px;line-height: 40px;}p:last-of-type>input{width: 310px;height: 45px;line-height: 45px;margin: 10px 45px;}button{width: 95px;height: 44px;line-height: 40px;background: #e6e6e6;border: none;}
</style>
<body><section><img src="../../img/GiWfi_header.jpg" alt=""><form action="index.html"><p><input type="text" placeholder="请输入11位手机号" id="phone"></p><p><input type="text" id="rom"><button>获取验证码</button></p><p><input type="text" placeholder="请输入6-16位密码" id="pass"></p><p><input type="image" src="../../img/button.jpg"></p></form></section>
</body>
<script>$(document).ready(function () {//绑定失去焦点事件$("#phone").blur(checkPhone);$("#pass").blur(checkPwd1);//表单提交判断$("form").submit(function () {var flag = true;if (!checkPwd1()) {flag = false;}if (!checkPwd2()) {flag = false;}if (!checkPhone()) {flag = false;}return flag;});//验证账号的方法function checkPhone() {var phone = $("#phone").val();var phones= /^1\d{10}$/;if (phones.test(phone)==false){return false}return true}//验证密码的方法function checkPwd1() {var $pwd = $("#pass").val();var paws = /^[0-9]{6,12}$/;if (paws.test($pwd)==false){return false}return true}//验证验证码//点击事件var  str="";$("button").click(function () {str="";for (var i = 0; i < 4; i++) {var j = Math.floor(Math.random()*10);//向下取整str+=j;//累加}$("#rom").val(str);return false});//验证验证码方法(函数)function checkPwd2() {var $pwd = $("#rom").val();var paws = /^[0-9]{4}$/;if (paws.test($pwd)==false){return false}return true}//修改密码$("input:last").click(function () {var w =checkPhone();var a =checkPwd2();var d =checkPwd1();if (w===true&&a===true&&d===true){alert("密码修改成功!");}else{alert("修改失败!")}})})
</script>
</html>


http://chatgpt.dhexx.cn/article/nc6sXLGu.shtml

相关文章

SurfaceTexture

SurfaceTexture 类是在 Android 3.0 中引入的。就像 SurfaceView 是 Surface 和 View 的结合一样&#xff0c;SurfaceTexture 是 Surface 和 GLES texture 的粗糙结合&#xff08;有几个警告&#xff09;。 当你创建了一个 SurfaceTexture&#xff0c;你就创建了你的应用作为消…

UserWarning: findfont: Font family [‘sans-serif‘] not found. Falling back to DejaVu Sans

Python数据可视化分析时出现UserWarning: findfont: Font family [‘sans-serif’] not found. Falling back to DejaVu Sans…报错 原因&#xff1a;库中没有关于’Microsoft YaHei’的引用 换一种字体记一下 如 字体中文名称字体英文名称黑体SimHei宋体SimSun新宋体NSimSum…

The tag <fonta> is unrecognized in this browser. If you meant to render a React component, start its

写react 组件样式 styled-components 报错 是因为react 千万记住开头字母是大写 由于这个f小写了 但是这个是当成了一个组件在用 所以会一直报错 改为大写就会解决了 小伙伴们千万注意 react的项目组建开头必须大写

createfont(CreateFontIndirectW)

如何用CreateFont创建制定点大小的字符 import java.awt.Font; import java.io.File; import java.io.FileInputStream; public class Loadfont public static Font loadFont(String fontFileName, float fontSize) //第一个参数是外部字体名&#xff0c;第二个是字体大小 File…

MindFusion.WinForms Pack 2022.R2

MindFusion.WinForms Pack 2022.R2 每个节点多个标签-允许为单个流程图节点显示多个标题。您可以自定义节点标签&#xff0c;包括显示和定位。 混杂的 bhMoveLabels行为现在允许用户交互移动链接和节点标签。 水平偏移和垂直偏移现在适用于使用SetLinkLengthPosition方法定位的…

findfont: Font family [‘Times New Roman‘] not found. Falling back to DejaVu Sans.字体安装

问题描述 使用python对数据进行可视化的时候&#xff0c;matplotlib绘图的时候&#xff0c;提示警告如题所示&#xff1a; UserWarning: findfont: Font family [Times New Roman] not found. Falling back to DejaVu Sans. 环境说明&#xff1a;使用的是 CentOS系统&#xf…

Could not load file or assembly ‘office, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce11

Could not load file or assembly office, Version12.0.0.0, Cultureneutral, PublicKeyToken71e9bce11 window10 Could not load file or assembly office, Version12.0.0.0, Cultureneutral, PublicKeyToken71e9bce11 新的改变 我们对Markdown编辑器进行了一些功能拓展与语…

jasperreports6.12.2 could not load the following font解决方法

jasperreports通过Java代码生成PDF的时候不能获取中文字体&#xff0c;报错提示如下&#xff1a; net.sf.jasperreports.engine.JRRuntimeException: Could not load the following font: pdfFontName: STSong-Light pdfEncoding: Identity-H isPdfEmbedded : true本次环境&…

快速小巧的粘贴应用程序Hasty Paste

什么是 Hasty Paste? Hasty Paste 是一个快速粘贴文本并共享的地方&#xff0c;主要用于共享调试日志等&#xff0c;以帮助开发人员提供技术支持。该项目的目标是既快又小。 命令行安装 在群晖上以 Docker 方式安装。 官方的镜像没有发布在 docker hub&#xff0c;而是在 gh…

SpringBoot--解决BigDecimal传到前端后精度丢失的问题

原文网址&#xff1a;SpringBoot--解决BigDecimal传到前端后精度丢失的问题_IT利刃出鞘的博客-CSDN博客 简介 本文用示例介绍SpringBoot如何解决BigDecimal传到前端后精度丢失问题。 解决方案是&#xff1a;转成字符串格式返回。 问题描述 实例 Controller package com.…

BigDecimal 简单使用

目录 为什么使用BigDecimal 解决方案 构造方法 类型转换 double 转 BigDecimal BigDecimal 转 String BigDecimal 转 double/int/long等 加减乘除取余 divide 舍入模式 比较大小 格式化(DecimalFormat) 小结 为什么使用BigDecimal 1.float和double类型的主要设计目…

BigDecimal用法

文章目录 1、创建一个BigDecimal对象1.1、常用构造函数1.1、常用计算方法 2、BigDecimal很方便的几个用法2.1、用BigDecimal去除小数点后多余的0&#xff1a;stripTrailingZeros()2.2、BigDecimal的原值和科学计数值2.3、用BigDecimal比较大小&#xff1a;compareTo()2.4、BigD…

mysql bigdecimal查询_mysql bigdecimal

java学习:Java中的其它类 568x573 - 55KB - JPEG Java中BigDecimal类你了解多少?! 720x480 - 30KB - JPEG TypeHandlers 640x396 - 25KB - JPEG BigDecimal equals方法可能不相等 678x260 - 9KB - JPEG

BigDecimal 详解

一&#xff0c;BigDecimal的简介 Java在java.math包中提供的API类BigDecimal&#xff0c;用来对超过16位有效位的数进行精确的运算。 双精度浮点型变量double可以处理16位有效数。在实际应用中&#xff0c;需要对更大或者更小的数进行运算和处理。float和double只能用来做科学…

BigDecimal加减乘除计算

BigDecimal的运算——加减乘除 首先是bigdecimal的初始化 这里对比了两种形式&#xff0c;第一种直接value写数字的值&#xff0c;第二种用string来表示 我们对其进行加减乘除绝对值的运算,其实就是Bigdecimal的类的一些调用 BigDecimal num1 new BigDecimal(0.005);BigDecim…

java 中 BigDecimal 详解

首先&#xff0c;学习一个东西&#xff0c;我们都必须要带着问题去学&#xff0c;这边我分为 【为什么&#xff1f;】【是什么&#xff1f;】【怎么用&#xff1f;】 【为什么要用BigDecimal&#xff1f;】 首先&#xff0c;我们先看一下&#xff0c;下面这个现象 那为什么会…

Java —— JDBC关闭Statement后是否还需要关闭ResultSet?

一、问题描述 下面的代码使用了try-with-resource语法&#xff0c;会自动关闭Connection和Statement,是否还需要关闭ResultSet&#xff1f; Statement关闭后ResultSet会被回收么&#xff1f; 二、JDBC规范 JDBC规范4.3中有对Statement关闭后是否需要关闭ResultSet进行说明。…

ResultSet(结果集)、Statement

ResultSet 基本介绍&#xff1a; 1.表示数据库结果集的数据表&#xff0c;通常通过执行查询数据库的语句生成 2.ResultSet对象保持一个光标指向其当前的数据行&#xff0c;光标最初在第一行之前 3.next()方法是将光标移动到下一行&#xff0c;并且由于在ResultSet对象中没有…

【JDBC】------ResultSet(结果集)和常见异常

分享第二十条励志语句 宁可自信&#xff0c;也不要盲目悲观。因为自信是一种力量&#xff0c;即使你的自信有些盲目&#xff0c;也无关大局&#xff0c;你可以在实践中调整心态&#xff0c;找到自己的恰当的位置。如果盲目自卑&#xff0c;你就必然失去一切。 目录 分享第二十…

JDBC的ResultSet

一、ResultSet[结果集] 1.表示数据库结果集的数据表&#xff0c;通常通过执行查询数据库的语句生成。 2.ResultSet对象保持一个光标指向其当前的数据行&#xff0c;最开始光标在第一行。 3.next方法将光标移动到下一行&#xff0c;由于在ResultSet对象中没有更多行时返回fal…