JS表单验证

表单验证:(四个文本框:用户名、密码、确认密码、邮箱地址)
	1.用户名不能为空
	2.用户名必须在6-14之间
	3.用户名只能由数字和字母组成,不能含有其他符号(正则表达式)
	4.密码和确认密码一致,邮箱地址合法
	5.统一失去焦点验证
	6.错误提示信息统一在span标签中提示,并且要求字体12号,红色
	7.文本框再次获得焦点后,清空错误提示信息,如果文本框中数据不合法要求清空文本框的value
	8.最终表单中所有项均合法方可提交
代码:
	<!DOCTYPE html>
	<html>
		<head>
			<meta charset="utf-8">
			<title>表单验证</title>
			<style type="text/css">
				span{
					color: red;
					font-size: 12px;
				}
			</style>
		</head>
			<!--
				1.用户名不能为空
				2.用户名必须在6-14之间
				3.用户名只能由数字和字母组成,不能含有其他符号(正则表达式)
				4.密码和确认密码一致,邮箱地址合法
				5.统一失去焦点验证
				6.错误提示信息统一在span标签中提示,并且要求字体12号,红色
				7.文本框再次获得焦点后,清空错误提示信息,如果文本框中数据不合法要求清空文本框的value
				8.最终表单中所有项均合法方可提交
			-->
		<body>
			<!--这个表单提交应该使用post,这里为了检测,使用get-->
			<form id="userform" action="http://localhost:8080/oa/save" method="get"> 
				用户名<input type="text" id="username" name="username" />
				<span id="usernameError"></span><br>
				密码<input type="text" id="password" name="userpwd"/>
				<br>
				确认密码<input type="text" id="passwordCheck"/>
				<span id="pwdError"></span><br>
				邮箱地址<input type="text" id="email" name="email"/>
				<span id="emailError"></span><br>
				<!--<input type="submit" value="注册">-->
				<input type="button" id="submitBtn" value="提交"/>
				<input type="reset" value="重置">
			</form>
			
			<span id="check" style="color: red;font-size: 12px;"></span>
			<script type="text/javascript">
				window.onload=function(){
					//给用户名文本框绑定blur事件
					var usernameElt=document.getElementById("username");
					//获取username的span标签
					var usernameSpanError=document.getElementById("usernameError");
					usernameElt.onblur=function(){
						//获取用户名
						var username=usernameElt.value;
						//去除前后空白
						username=username.trim();
						//username正则表达式
						usernameExp=/^[1-9a-zA-Z]+$/;
						//判断用户名长度
						if(username.length<6 || username.length>14){
							usernameSpanError.innerText="用户名必须在6-14之间";
							usernameElt.value="";
						}
						//判断用户名value是否只有数字和字母
						if(!(usernameExp.test(username))){
							usernameSpanError.innerText="用户名只能是数字或字母";
							usernameElt.value="";
						}
					}
					//给用户名文本框绑定focus事件
					usernameElt.onfocus=function(){
						//清空错误提示信息
						usernameSpanError.innerText="";
					}
					//给确认密码文本框绑定blur事件
					var pwdCheck=document.getElementById("passwordCheck");
					var pwdSpanError=document.getElementById("pwdError");
					pwdCheck.onblur=function(){
						pwd=document.getElementById("password")
						var password=pwd.value;
						if(password!=pwdCheck.value){
							pwdSpanError.innerText="密码不一致";
							pwdCheck.value="";
						}
					}
					pwdCheck.onfocus=function(){
						document.getElementById("pwdError").innerText="";
					}
					var emailElt=document.getElementById("email");
					var emailSpanError=document.getElementById("emailError");
					//给邮箱文本框绑定blur事件
					emailElt.onblur=function(){
						var emailExp=/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$/
						var email=emailElt.value;
						email=email.trim();
						if(!emailExp.test(email)){
							emailSpanError.innerText="邮箱错误";
							emailElt.value="";
						}	
					}
					emailElt.onfocus=function(){
						document.getElementById("emailError").innerText="";
					}
					var submitBtn=document.getElementById("submitBtn");
					//给按钮绑定鼠标单击事件
					submitBtn.onclick=function(){
						//触发usernameElt的blur、pwdCheck的blur、emailElt的blur
						usernameElt.focus();
						usernameElt.blur();
						pwdCheck.focus();
						pwdCheck.blur();
						emailElt.focus();
						emailElt.blur();
						//所有表单项目合法则提交表单
						if(usernameSpanError.innerText=="" && pwdSpanError.innerText=="" && emailSpanError.innerText==""){
							document.getElementById("userform").submit();
						}
						else{
							alert("error!!!");
						}
					}
				} 
			</script>
		</body>
	</html>

  

原文地址:https://www.cnblogs.com/-slz-2/p/15546039.html