表单校验html+js

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>表单校验完善</title>
<style type="text/css">
table{
	border:#999 solid 1px;
	width:700px;
	border-collapse:collapse;/*单边框*/
}
table th,table td{
	border:#0C9 solid 1px;
}
table th{
	background-color:#09F;
}
table td{
	background-color:#CFF;
}
#confirm{
	margin-left:122px;
}
.errorInfo{
	display:none;
	color:#F00;
}
.normal{
	border:#999 solid 1px;
}
.focus{
	border:#09F solid 2px;
}
.redError{
	border:#F00 solid 2px;
}
</style>
</head>
<!--
1,表单页面  table格式化表单
2,css美化表单
3,动态效果
	在页面加载时,将所有的输入框加入默认的框线以及定义获取焦点时的框线颜色
4,脚本+dom完成表单的校验功能
	4.1进行内容校验,通过正则表达式完成,并通过框线的颜色给用户提示
    4.2通过分析发现代码的重复性很高,所以把相同的部分进行封装,不同的地方进行抽取
-->
<script type="text/javascript">
//输入框加入框线
function inputColor(input)
{
	input.className = "normal";
	input.onfocus = function()
	{
		this.className = "focus";
	}
}
window.onload = function()
{
	with(document.forms[0])
	{
		inputColor(user);
		inputColor(pwd);
		inputColor(rePwd);
		inputColor(mail);
		
	}
}
//用户名校验,老式校验,代码冗长
/*function checkName(userNode)
{
	var value  = userNode.value;
	var nameReg = /^\w{3,5}$/;
	var userDiv = document.getElementById("userDiv");
	if(nameReg.test(value))
	{
		userNode.className = "normal";
		userDiv.style.display = "none";
		
	}
	else
	{
		userNode.className = "redError";
		userDiv.style.display = "block";
	}
}*/
//校验方法
function check(inputNode,reg,div)
{
	var b = false;
	var value = inputNode.value;
	var div = document.getElementById(div)
	if(reg.test(value))
	{
		inputNode.className = "normal";
		div.style.display = "none";
		b = true;
	}
	else
	{
		inputNode.className = "redError";
		div.style.display = "block";
		return false;
	}
	return b;
}
//用户名校验
function checkName(userNode)
{
	var nameReg = /^\w{3,5}$/;
	return check(userNode,nameReg,"userDiv");
}
//密码校验
function checkPwd(pwdNode)
{
	var pwdReg = /^[0-9a-z]{3,5}$/i;
	return check(pwdNode,pwdReg,"pwdDiv");
}
//确认密码校验
function checkRePwd(rePwd)
{
	var b = false;
	var pwd2 = rePwd.value;
	var pwd1 = document.forms[0].pwd.value;
	//alert(pwd1);
	var rePwdDiv = document.getElementById("rePwdDiv");
	//alert(rePwdDiv.nodeName);
	if(pwd2==pwd1)
	{
		rePwd.className = "normal";
		rePwdDiv.style.display = "none";
		b = true;
	}
	else
	{
		rePwd.className = "redError";
		rePwdDiv.style.display = "block";
	}
	return b;
}
//校验邮箱
function checkMail(mailNode)
{
	//var value = mailNode.value;
	//alert(value);
	var mailReg = /^\w+@\w+(\.\w+)+$/;
	return check(mailNode,mailReg,"mailDiv");
}
//表单第二次校验,加强安全注册
function checkAll(formNode)
{
	with(formNode)
	{
		
		if(checkName(user) && checkPwd(pwd) && checkRePwd(rePwd) && checkMail(mail))
			return true;
		else
			return false;
	}
		
}
</script>
<body>
	<form action="www.baidu.com" method="get" οnsubmit=" return checkAll(this)">
    	<table>
        	<tr>
            	<th>注册表单</th>
            </tr>   
            <tr>
            	<td>
                	<div>用户名</div>
                    <div><input type="text" name="user" οnblur="checkName(this)"/></div>
                    <div class="errorInfo" id="userDiv">用户名错误,请安要求输入</div>
                    <div>用户名必须是3-5位,由数字(0-9),字母(a-z),下划线(_)组成</div>
                </td>
            </tr>
            <tr>
            	<td>
                	<div><span>密码</span> <span id="confirm">确认密码</span></div>
                    <div>
                    	<input type="text" name="pwd" οnblur="checkPwd(this)"/>
                        <input type="text" name="rePwd" οnblur="checkRePwd(this)"/>
                    </div>
                    <div class="errorInfo" id="pwdDiv">密码格式错误,请按规范输入</div>
                    <div class="errorInfo" id="rePwdDiv">两次密码输入的不一致</div>
                    <div>密码必须是3-5位,由数字(0-9),字母(a-z)组成</div>
                </td>
            </tr>
            <tr>
            	<td>
                	<div>邮件地址</div>
                	<div><input type="text" name="mail" οnblur="checkMail(this)"/></div>
                    <div class="errorInfo" id="mailDiv">邮件地址错误,请按要求输入</div>
                </td>
            </tr>
            <tr>
            	<th><input type="submit" value="提交" /></th>
            </tr>
        </table>
    </form>
</body>
</html>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值