JavaScript06.表单验证

JavaScript.06.表单验证、正则、省市联动 目录一、知识大纲二、表单验证三、表单验证进阶四、正则五、省市联动(二级联动) 一、知识大纲 二、表单验证 1.form 表单 2.添加提交事件 id.οnsubmit=()=>{} 3.阻止表单的提交 需要返回 false <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"&g 阅读详情

回顾:JavaScript05.JS与css交互

目录

用JS实现简单验证

正则验证

正则表达式规则

正则表达式注意事项

正则的运用

实现二级联动


用JS实现简单验证

想实现表单验证,首先我们得需要表单

<form action="" onsubmit="return check()">    //在提交时会返回一个参数
			<p>名字:<input type="text" id="uname"/>    //名字输入框
			<span><i class="error"></i></span></p>     //名字提示信息
			<p>密码:<input type="text" id="upwd"/>     //密码输入框(type应该为password,此处为了方便显示所以也使用text)
			<span><i class="error"></i></span></p>    //密码提示信息
			<p>邮箱:<input type="text" id="uemail"/>  //邮箱输入框
			<span><i class="error"></i></span></p>    //邮箱提示信息
			<p><button type="button">登录</button></p>    //表单中的按钮会默认识别为提交按钮
            //当点击此按钮会返回一个boolean类型,成功为true,失败为false
</form>

做简单验证实质就是每次输入内容时调用某个函数做到验证,我们有以下几个事件可以使用:

onkeydowm 当键盘按下时

onkeyup 当键盘弹回时

onkeypress 当键盘完成一次敲击时

完成表单验证时,我们最好使用onkeyup当键盘按下时文本内容刚增加,此时还检测不到输入框是否给到值,只有弹回时,才检测得到输入框的内容,当键盘完成一次敲击同理

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>表单验证</title>
	</head>
	<body>
		<form id="myForm">
			<p>名字:<input type="text" id="uname" onkeyup="checkin(this)"/>
			<span><i class="error"></i></span></p>
			<p>密码:<input type="text" id="upwd" onkeyup="checkin(this)"/>
			<span><i class="error"></i></span></p>
			<p>邮箱:<input type="text" id="uemail" onkeyup="checkin(this)"/>
			<span><i class="error"></i></span></p>
			<p><button type="button">登录</button></p>
		</form>
		
		<script type="text/javascript">
			function checkin(obj){
				var length=obj.value.length	//得到input标签值的长度
				var label =obj.parentElement.getElementsByClassName("error")[0]		//通过input标签父类得到error标签
				if(length>0){	//判断input标签是否有内容
					if(length>=3&&length<=6){	//判断input标签值得长度是否满足3到6
						label.textContent="√"	//如果满足条件则让error标签显示√
						return true
					}
					label.textContent="长度必须在3-6之间"		//如果不在区间内,则输出这句话,并且返回false
					return false
				}
				label.textContent="长度必须大于0"		//如果input标签无内容
				return false
			}
		myForm.onsubmit=()=>{
			//如果需要阻止表单提交则要返回false
			var f1=checkin('uname')
			var f2=checkin('upwd')
			var f3=checkin('uemail')
			return f1&&f2&&f3
		}
		</script>
	</body>
</html>

这样就可以实现表格的简单判断 

正则验证

正则表达式规则:

内容方面:

  1. \d 数字[0-9]
  2. \D 非数字 ^[0-9]
  3. \w 数字+英文+下划线 [0-9a-zA-Z]
  4. \W 非数字+英文+下划线 ^[0-9a-zA-Z]
  5. . 任意字符

次数方面:

  1. ? 0-1次
  2. + 至少一次
  3. * 0-任意次
  4. \d{5} 五个数字
  5. \d{5,10} 最少五次,最多10次

正则表达式注意事项:

  1. 规则必须以/^开头

  2. 规则必须以$/结尾

  3. 规则只需要\d,而不是\\d

  4. 定义正则对象:var rex=/^\d{5}$/

  5. 使用正则对象:rex.test("321")

正则的运用:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        span {
            color: red;
            font-weight: bold;
        }
    </style>
</head>
<body>
<!--
为什么需要使用正则!!!! 表单验证
-->
<!--<form action="" onsubmit="return check()">-->
<form action="" id="myForm">
    <p>名字: <input type="text" id="userName" onkeyup="checkLabel(this,/^[a-zA-Z]{3,6}$/,'名字的长度在3-6')"><span><i class="error"></i></span></p>
    <p>密码: <input type="text" id="userPwd" onkeyup="checkLabel(this,/^\w{6,10}$/,'密码的长度在6-10')"><span><i class="error"></i></span></p>
    <p>邮箱: <input type="text" id="userEmail" onkeyup="checkLabel(this,/^\w+[.]\w+@\w+[.]\w+$/,'邮箱中必须包含@')"><span><i class="error"></i></span></p>
    <p>
        <button>登录</button>
    </p>
</form>
<script>

    //用来检查名字是否合规
    function checkLabel(obj,rex,tip) {
        var length = obj.value.length
        var label = obj.parentElement.getElementsByClassName("error")[0]
        if (length > 0) {//里面有内容
            //内容在正则匹配之间
            if (rex.test(obj.value)) {
                label.textContent = "😊"
                return true
            }
            //不在区间之内
            label.textContent = tip
            return false
        }
        //里面没有内容
        label.textContent = "长度必须大于0"
        return false
    }

    //添加提交事件(会具备返回值)
    myForm.onsubmit = () => {
        //阻止表单的提交  需要返回 false
        // return checkName()&&checkPwd()&&checkEmail()
        var f1 = checkLabel(userName)
        var f2 = checkLabel(userEmail)
        var f3 = checkLabel(userPwd)
        return f1 && f2 && f3
    }
</script>
</body>
</html>

实现二级联动

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<select id="province" onchange="myChange()"></select>
<select id="cities"></select>

<script>

    //JS数组特点:
    //类型不限制
    //长度不限制
    //数组可以是字符串
    var provinces=[]
    //城市
    provinces["江西省"]=["南昌","九江","上饶"]
    provinces["湖南省"]=["长沙","常德","湘潭"]
    provinces["浙江省"]=["杭州","宁波","温州"]


    //获得省份
    //  for of 相当于foreach 遍历元素
    //  for in 遍历下标
    for(let i in provinces){
        //往省份的下拉框中添加选项
        //<option value="i">i</option>
        province.appendChild(new Option(i,i))
    }

    //获得省份下的城市
    function setCity(name) {
        for(let i of provinces[name]){
            cities.appendChild(new Option(i,i))
        }
    }

    setCity(province.value)

    function myChange() {
        //清空原来的选项
        cities.innerHTML=""
        //输入框 和 下拉框
        setCity(province.value)
    }
</script>
</body>
</html>

 你要尽全力保护你的梦想。那些嘲笑你梦想的人,他们注定失败,他们想把你变成和他们一样。我坚信,只要心中有梦想,我就会与众不同。你也是。

WHAT - Form 表单组件系列(二)- 最原始的表单验证机制 form validation 组件库中经常用到form表单,其中表单验证是很重要的一个环节。那最原始的html表单验证机制是怎么样的?以及我们可以利用哪些特性来实现自定义表单验证? 阅读详情

相关推荐

微信小程序中的表单验证机制

文章目录前言一、WxValidate类的构造函数1、参数rules2、参数messages3、创建WxValidate类的实例二、WxValidate的内置校验规则三、WxValidate的表单验证方法四、WxValidate类在小程序页面中的部署总结关于作者 前言 微信小程序中的表单要进行验证,可以使用第三方插件:WxValidate.js。该插件约有12.8KB左右,采用ES6中class类的方式进行编写,所定义的类名为WxValidate,并最终将该类导出。本文将详细讲解WxValidate.js插

小海前端 3204

JavaScript操作表单项总结

1、表单判文本框空 表单文本框: &lt;input id="orgName" type="text" name="" value=""/&gt; 判空的JavaScript代码: var orgName = document.getElementById("orgName").value;if(orgName.replace(/(^\s*)|(\s*$)/g, "&quot

wjt276的专栏 184

YOLOv8n行人检测实战:从数据集准备到模型训练

本文详细介绍了使用YOLOv8n进行行人检测的完整流程。首先阐述了YOLOv8的优势:高速推理(300+FPS)、更高精度、易用性和轻量化(仅6MB)。接着通过Docker搭建GPU训练环境,配置32GB共享内存避免数据加载问题,并安装必要的框架和OpenCV组件。数据集采用COCO2017标注格式,包含归一化坐标的YOLO标签文件。通过可视化脚本验证标注准确性后,提出多数据集融合训练策略以增强模型泛化能力。最后使用Ultralytics框架启动训练,展现了从环境搭建到模型训练的完整技术路径。该方案兼顾检测

Hi20240217的博客 1092

onkeyup事件,onpaste事件,完成实时表单验证

先上效果图: input框,用户输入值的方式就两种,一种是键盘输入,一种是鼠标粘贴。onkeyup事件可以在键盘输入的时候绑定事件,onpaste="return false",设置不允许粘贴。onkeyup进行表单验证的优点是当键盘有值输入的时候,就可以实时进行验证。页面部分:<input id="id_card" type="text" class="form-control" onkeyup

ljh243581579的博客 2697

从CMT2300A实战出发:Sub1G射频匹配电路设计要点与315MHz应用详解

本文从CMT2300A芯片实战出发,详细解析Sub1G射频匹配电路设计要点,特别针对315MHz应用场景。内容涵盖频段划分逻辑、调制方式选择、晶体振荡器设计等基础认知,以及315MHz匹配电路物料选型、巴伦网络处理等实战技巧,并分享PCB布局防干扰设计和实测验证方法,助力开发者优化射频通信性能。

weixin_29238147的博客 165

在不同版本Python中安装PyQT5及PyQT5-Tools

在不同版本Python中安装PyQT5及PyQT5-Tools

zoomgu680的博客 2万+

JavaScript之表单验证

前言:我们这一次讲的表单验证运用了前面几篇文章说讲的的内容,比之前的要难一些,我会在代码里以注释的形式详细的讲解。 目录 一.简单的表单验证 验证方式一: 验证方式二: 二.正则验证 一.正则的规则 内容 次数 二.正则的注意事项 三.二级联动 一.简单的表单验证 验证方式一: <html> <head> <meta charset="UTF-8"> <title>Title&...

weixin_64938628的博客 1万+

CUDA编译踩坑实录:如何正确设置-gencode参数适配你的GPU算力

本文深入解析CUDA编译中-gencode参数的核心原理与实战配置,帮助开发者解决常见的'Unsupported gpu architecture'错误。通过厘清虚拟架构与真实架构的区别,并提供多版本兼容的CMake配置方案,确保编译出的代码能精准适配不同GPU算力,兼顾性能与广泛兼容性。

weixin_28829903的博客 339

js进行多表格验证

一、行依次验证 function test() { var via = false; (&amp;quot;#tab&amp;quot;).find(&amp;quot;tr&amp;quot;).each(function(index,&amp;amp;nbsp;ele)&amp;amp;nbsp;{&amp;amp;nbsp;&amp;amp;nbs

hanchaojunjava的博客 572

手把手教你用VSCode+MCUXpresso搭建i.MX RT1062开发环境(附RT-Thread Nano移植)

本文详细介绍了如何使用VSCode和MCUXpresso工具链搭建i.MX RT1062开发环境,包括工具链安装、工程配置、调试技巧以及RT-Thread Nano实时操作系统的移植方法。通过实战步骤和优化建议,帮助开发者快速掌握这款高性能Cortex-M7 MCU的开发流程,提升嵌入式开发效率。

weixin_27014595的博客 392

【matlab】MATLAB 变量详解与应用

在 MATLAB 中,变量可以通过赋值操作进行定义。例如,要定义一个名为xx = 10;在这个例子中,我们创建了一个名为x的变量,并将其赋值为 10。需要注意的是,MATLAB 是一种动态类型语言,因此不需要显式地声明变量的类型。变量名必须以字母开头。变量名可以包含字母、数字和下划线。变量名区分大小写。不要使用 MATLAB 中的关键字(如forif等)作为变量名。

小吴同学的博客 2213

JavaScript.06.表单验证

一、表单验证概念: 表单数据是JavaScript中的高级选项之一。 二、正则的规则: /d 数字【0-9】 /D 非数字【0-9】 /w 数字+英文+下划线【0-9a-zA-Z】 /W 非数字+非英文+非下划线【0-9a-zA-Z】 . 【任意字符】 三、表单验证常用函数方法: toLowerCase() 把字符串转化为小写 toUpperCase() 把字符串转换为大写 charAt(index) 返回在指定位置的字符 indexOf(字符串,index) 查找指定字符串值在值在字符串中出现的位置 s

T278lk的博客 737

在Simulink中实现一个基于SiC MOSFET的高效率电机驱动系统

本文介绍了在Simulink中构建基于SiC MOSFET的高效率电机驱动系统的详细流程。系统由直流电源模块、SiC MOSFET逆变器模块、PMSM电机模型、控制策略模块(包括矢量控制和PWM生成)以及反馈测量模块组成。文章逐步指导了从模型创建到参数设置的完整过程,包括各模块的具体实现方法。通过仿真可以评估系统在不同负载条件下的响应速度、效率、功率密度等性能指标。该建模方法为电机驱动系统的设计和优化提供了有效工具,同时建议根据实际硬件规格和工程需求进行参数调整和定制化开发。

xiaoheshang_123的博客 251

javaScript-06 表单验证 详细易懂,加案例分析

JavaScript表单验证,全网最详细

YZZdear的博客 2766

【测绘程序设计】——潮汐调和分析

最小二乘潮汐调和分析源码、使用示例及数据

C_xxy's blog 2653

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

JavaScript 06----表单验证

JavaScript 06----表单验证

weixin_65975275的博客 427

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Javascript_06_表单验证(离开单项,输入框后提示信息)

Javascript_06_ 表单验证(离开单项,输入框后提示信息)   说明:对于必须输入的入力框,光标离开(使用 onblur方法)时进行检查。假如有错,红色的提示信息直接在该画面的这个输入框的后面显示出来,并把光标重新定向到这个输入框。   待解决问题: ①    内存泄漏问题:比如用户名没输入,离开用户名输入框时,画面上会给出提示警告信息;此时再点击密码输入框时,会导致 IE占用

飞越蓝天的专栏 6703

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

JavaScirpt 06 表单验证

家人们,时隔几天我又带着新的知识来啦,最近工作比较忙,难得闲下来,翻开自己以前读书时期做的笔记,不知道还在上学的一些家人们,会不会有喜欢做笔记的习惯,如果没有的话,要养成噢,做笔记其实也在整理我们学习的知识,也方便当我们遗忘一些知识点的时候,翻开笔记去查阅,大家也要每天认真敲代码噢,敲几编和敲十几遍肯定会有区别的噢,好啦今天带大家学习表单验证,让我们进入知识的海洋中去,还是老样子,有不懂的在下方评论或者私信我噢,忙完工作看到一定会回复给大家解答的噢。 一.课前温习 我们先来温习一下我们以前学的知...

m0_65725031的博客 853

【微信小程序】表单验证WxValidate.js使用

  微信官方是没有提供的,需要我们自己来定义。比较好用的一款第三方表单验证插件是。  下载地址:https://github.com/wux-weapp/wx-extend/tree/master/src/assets/plugins/wx-validate  把放入微信小程序目录下。   在需要进行表单验证的页面引入: 使用步骤 - 2. 配置验证规则   首先要在小程序的data属性里面配置好表单的名字:   wxml页面的input框里面的value值一定要和js里面的声明的对应上,input的na

十一月廿七风雨大作 7628

js判断file是否为空_JS简单表单验证,判断不为空

2020 .06 .30JavaScript图 | gucci哈喽,大家好,我是小7,你们的IT知识干货提供者。文 | 与其终JS简单表单验证,判断不为空先上简略的效果图:▼我只是简单的判断如果文本框为空,就弹出不能为空的警告框;如果你们判断条件很多,可以多加一点~拷代码环节:▼<html> <head> <meta charset="UTF-8...

weixin_39590635的博客 1750

小程序表单验证 利用WxValidate.js实现表单验证

需求:小程序,个人资料的时候需要进行校验,如下图 第一步:下载WxValidate.js 第二步:在所需要的页面的js文件中引入 import WxValidate from '../../../utils/WxValidate.js' 第三步:wxml里面写上form表单(这个插件必须是表单才可以用,提交按钮也是要在form里面的,form里面的input一定要加name属...

Hero_rong的博客 1645

JavaScript.正则与表单验证

JavaScript.正则与表单验证.06 表单:感念 表单验证是JavaScript可用来在数据被送往服务器前对HTML表单中的这些输入数据进行验证。 本期大纲: 简单验证 使用String类型来对数据格式进行判断 完成用户名和密码的验证 长度最大为10 给出未填写提示 //先创建一个表单 <form action="" id="myForm"> //里面写两个输入框 //p 标签 做跨行作用 <p>用户名:<input type="

qq_63130170的博客 740
上一篇: JavaScript05.JS与css交互
下一篇: JavaScript游戏购物车项目
也跌
博客等级 码龄5年 521粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值