首页 > 编程语言 >JavaScript实现完整的表单验证对邮箱用户名和密码一致性检测并拦截提交-----前端

JavaScript实现完整的表单验证对邮箱用户名和密码一致性检测并拦截提交-----前端

时间:2023-11-09 12:01:51浏览次数:37  
标签:function username JavaScript 表单 getElementById innerText var ----- document

完整的表单验证HTML网页使用JS完成用户名密码一致性和邮箱验证

<!DOCTYPE html>
<!-- 这是HTML的注释 -->
<html lang="en" id="myHtml">
	<head>
		<!-- 这里不是设置了编码,而是告诉浏览器,用什么编码方式打开文件避免乱码 -->
		<meta charset="UTF-8">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<title>HtmlAll</title>
		<style type="text/css">
			span
			{
				color: red;
				font-size: 12px;
			}
		</style>
	</head>
	<body>
		<!-- JS包括三大块
		dom指的是文档对象模型,对网页中的节点进行增删改查的过程
		bom浏览器对象模型(关闭浏览器窗口,打开一个浏览器窗口,后退前进,浏览器地址栏上的地址)
		ecmascript是JS的核心语法ES标准
		bom的顶级对象是window(浏览器窗口),dom的顶级对象是document(HTML文档) -->
		<!-- 实际上bom是包含dom的 -->
		<!-- bom和DOM是包含关系 -->
		<script type="text/javascript">
			window.onload = function()
			{
				var UF = document.getElementById("usernameError");
				//通过浏览器窗体获取了html元素
				document.getElementById("btn").onclick = function()
				{
					alert(btn);
				}
				document.getElementById("get").onclick = function()
				{
					alert(document.getElementById("txt").value);
					document.getElementById("nwx").value = "jack";
				}
				var un = document.getElementById("username");
				un.onblur = function()
				{
					username = un.value;
					username = username.trim();
					if(username)
					{
						//代表非空
						if(username.length < 6 || username.length > 14)
						{
							//用户名长度非法
							UF.innerText = "用户名必须在6到14之间";
						}
						else
						{
							//用户名长度合法
							//判断是否有非法字符
							var regExp = /^[A-Za-z0-9]+$/;
							if(regExp.test(username))
							{
								//合法
							}
							else
							{
								//不合法
								UF.innerText = "用户名只能由数字和字母组成";
							}
						}
					}
					else
					{
						//代表空
						//提示信息
						UF.innerText = "用户名不能为空";
					}
				}
				un.onfocus = function()
				{			
					//这里要先检测再清空,这样就可以判断内容是否为空格组成用于清理
					if(UF.innerText != "")
					{
						//清空空格内容
						un.value = "";
					}
					//清空提示信息
					UF.innerText = "";
				}
				document.getElementById("pwd2").onblur = function()
				{
					var pwd1 = document.getElementById("pwd1").value;
					var pwd2 = document.getElementById("pwd2").value;
					if(pwd1 != pwd2)
					{
						//密码错误的提示标签提示错误
						document.getElementById("pwdError").innerText = "两次输入的密码不一致";
					}
					if(pwd1 === "" || pwd2 === "")
					{
						document.getElementById("pwdError").innerText = "密码不能为空";
					}
				}
				document.getElementById("pwd2").onfocus = function()
				{
					if(document.getElementById("pwdError").innerText != "")
					{
						document.getElementById("pwdError").innerText = "";
					}
				}
				document.getElementById("email").onblur = function()
				{
					var email = document.getElementById("email").value;
					var emailRegExp = /^[A-Za-z0-9]+([-._][A-Za-z0-9]+)*@[A-Za-z0-9]+(-[A-Za-z0-9]+)*(\.[A-Za-z]{2,6}|[A-Za-z]{2,4}\.[A-Za-z]{2,3})$/;
					if(emailRegExp.test(email))
					{
						
					}
					else
					{
						//没过
						document.getElementById("emailnameError").innerText = "必须输入一个邮箱";
					}
				}
				document.getElementById("email").onfocus = function()
				{
					if(document.getElementById("emailnameError").innerText != "")
					{
						document.getElementById("emailnameError").innerText = "";
					}
				}
				document.getElementById("myForm").onsubmit = function()
				{
					
				}
				document.getElementById("update").onclick = function()
				{
					document.getElementById("username").onblur();
					document.getElementById("pwd2").onblur();
					document.getElementById("email").onblur();
					var emailnameError = document.getElementById("emailnameError").innerText;
					var emailnameError = document.getElementById("pwdError").innerText;
					if(UF.innerText === "" && emailnameError === "" && pwdError === "")
					{
						document.getElementById("myForm").submit();
					}
					else
					{
						alert("输入信息有误");
					}
				}
			}
		</script>
		<input type="button" id="btn" value="hello"/>
		<input type="text" id="txt"/>
		<input type="button" id="get" value="获取文本的value"/>
		<input type="text" id="nwx"/>
		<input type="text" value="哈哈哈哈哈哈哈哈哈" onblur="alert(this.value)"/>
		<div>
			<table>
				<form id="myForm" action="http://www.baidu.com">
					<tr>
						<th>
							用户名:
						</th>
						<th>
							<input type="text" id="username"/>
							
						</th>
						<th>
							<span id="usernameError"></span>
						</th>
					</tr>
					<tr>
						<th>
							密码:
						</th>
						<th>
							<input id="pwd1" type="text"/>
						</th>
					</tr>
					<tr>
						<th>
							确认密码:
						</th>
						<th>
							<input id="pwd2" type="text"/>
						</th>
						<th>
							<span id="pwdError"></span>
						</th>
					</tr>
					<tr>
						<th>
							邮箱:
						</th>
						<th>
							<input id="email" type="email"/>							
						</th>
						<th>
							<span id="emailnameError"></span>
						</th>
					</tr>
					<tr>
						<th>
							注册或重置
						</th>
						<th>
							<input id="update" type="button" value="注册"/>
							<input type="reset" value="重置"/>
						</th>
					</tr>
				</form>
			</table>
		</div>
		<div>
			<table>
				<tr>
					<th>
						<th>
							
						</th>
						<th>
							
						</th>
					</th>
				</tr>
			</table>
		</div>
	</body>
</html>

标签:function,username,JavaScript,表单,getElementById,innerText,var,-----,document
From: https://blog.51cto.com/u_16322355/8275491

相关文章

  • uni-app vue3 获取元素报错问题
    关于uniapp中vue3使用uni.createSelectorQuery()时的this指向及查询结果说明_前端_谁凉了时光旧了少年-华为云开发者联盟(csdn.net)......
  • 11-9
    用透明组合模式实现教材中的“文件夹浏览”这个例子 #include<iostream>#include<string>#include<vector>usingnamespacestd;classAbstractFile{ public:virtualvoidadd(AbstractFile*ele)=0;        virtualvoidremove(AbstractFile*ele)=0;  ......
  • Java-Script 编程
    Java-Script编程目录Java-Script编程一.Js概念1.1简介1.2语法结构二.变量使用2.1定义变量2.2定义常量三.数据类型3.1数值类型(number)3.2字符类型(string)3.3.字符类型常用方法3.4布尔值(boolean)3.5null与undefined3.6数组3.7数组常用的方法3.8运算符四.流程......
  • 打工笔记--------------------------------c#处理ZIP文件帮助类
    一,代码usingSystem;usingSystem.IO;usingICSharpCode.SharpZipLib.Checksums;usingICSharpCode.SharpZipLib.Zip;namespaceHelper{publicclassZipHelper{publicstaticboolZipDirectory(stringfolderToZip,ZipOutputStreamzipStream,str......
  • angular-ui-router学习
    资料地址:UI-RouterforAngularJS(1.x)-HelloGalaxy!-UI-Router重点学习了:NestedStates嵌套状态,主要用来解决多个组件组合在一起,进行布局的问题。 ......
  • 打工笔记------------------------记录C#调用Windows API函数
    一,windowsAPI助手类usingNLog;usingSystem;usingSystem.Collections.Generic;usingSystem.Drawing;usingSystem.Linq;usingSystem.Runtime.InteropServices;usingSystem.Text;usingSystem.Threading;namespaceGateway{publicclassWindowAPI{......
  • 最佳实践for Postgresql-Linux
    适用范围postgresqlonlinuxLinux内核提供了各种可能影响性能的配置选项,为了获得最佳性能,PostgreSQL数据库取决于正确定义的操作系统参数。操作系统内核参数配置不当可能会导致数据库服务器性能下降与系统稳定。因此,必须根据数据库服务器及其工作负载配置这些参数。就像任何其他......
  • 用 arpl-i18n安装群晖系统 ,DSM 7.0版本不能降级到6.2版本
    说一个案例:值得借鉴(以网友测试的机器机型为案例),希望大家不要走弯路我的VM虚拟机用多种型号安装了DSM7.0,然后在arpl-i18n配置中设置了降级,并且选择6.2版本编译,重启以后SynologyAssistant搜索显示可转移,安装DSM_DS1621xs+_25556.pat重启以后,SynologyAssistant搜索仍然是可转......
  • 关于LINUX权限(启动tomcat)-bash: ./startup.sh: Permission denied
    关于LINUX权限-bash:./startup.sh:Permissiondenied在执行./startup.sh,或者./shutdown.sh的时候,爆出了Permissiondenied,其实很简单,就是今天在执行tomcat的时候,用户没有权限,而导致无法执行,用命令chmod修改一下bin目录下的.sh权限就可以了chmodu+x*.sh在此执行,OK了。......
  • 无涯教程-批处理 - While 语句 Implementation函数
    批处理脚本中没有直接的while语句,但是无涯教程可以使用if语句和标签很容易地实现此循环。下图显示了此循环的图解说明。while实现的第一部分是设置计数器,这些计数器将用于控制对"if"条件的判断,然后,无涯教程定义标签,该标签将用于体现while循环实现的整个代码,"if"条件将计算表......