表单验证:(四个文本框:用户名、密码、确认密码、邮箱地址)
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>