限于文章长度的限制,只帖出两个js文件和一个显示注册页面,至于后台处理页面以及css文件等,请在压缩包中查看
注册页面reg.htm
引用:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "">
<html xmlns="" lang="gb2312">
<head>
<meta http-equiv="Content-Type" c />
<title>草履虫---简易AJAX注册页面</title>
<link href="reg.css" type="text/css" rel="stylesheet" />
<script src="detect.js" type="text/javascript"></script>
<script src="ajax.js" type="text/javascript"></script>
</head>
<body >
<ul>
<li id="title">草履虫---Web注册系统</li>
<li class="underline">
<label>注册用户名:
<input type="text" maxlength="16" />
</label>
<span>支持汉字,单词,数字,敏感字符屏蔽</span>
</li>
<li>
<label>注册密码:
<input type="password" />
</label>
<span>密码在6-16位之间,敏感字符屏蔽</span>
</li>
<li class="underline">
<label>重复密码:
<input type="password" maxlength="16" />
</label>
<span></span>
</li>
<li class="underline">
<label>邮箱:
<input type="text" />
</label>
<span>email是联系重要手段</span>
</li>
<li class="underline">验证码:
<input type="text" maxlength="5" />
<label>
<img src="getcode.asp" id="src" height="18" alt="看不清楚?请点击刷新" />
<span>看不清楚?请点击验证码刷新</span>
</label>
</li>
<li class="underline">
相关协议:
<label ><input type="radio" name="info"/>接受</label>
<label ><input type="radio" name="info"/>不接受</label>
<input type="button" value="阅读协议" class="button" />
</li>
<li class="underline">
<input type="submit" value="注册" class="button setleft" />
<input type="reset" value="重置" class="button" />
<span></span>
</li>
<li class="copyright">作者:草履虫</li>
<li class="copyright">时间:2007-6-28</li>
<li class="copyright">联系:caolvchong@gmail.com</li>
<li class="copyright">Blog---Web2.0之路:<a href="[url=http://cceer.xmu.edu.cn/blog/%22%3E%3C/a%3E%3C/li]"><;/a></li[/url]>
</ul>
</body>
</html>
引用:
var flag=[0,0,0,0,0,0];
var $=function(tagName){
return document.getElementsByTagName(tagName);
}
//----------接受协议
function accept_info(){
flag[0]=1;
check_data();
}
//----------拒绝协议
function refuse_info(){
flag[0]=0;
check_data();
}
//----------重置
function reset_info(){
var info=["支持汉字,单词,数字,敏感字符屏蔽","密码在6-16位之间,敏感字符屏蔽","","email是联系重要手段","看不清楚?请点击验证码刷新"]
for(var i=0;i<$("span").length;i++){
$("span").innerHTML=info;
flag=0;
}
for(var i=0;i<$("input").length-3;i++){
$("input").value="";
}
check_data();
}
//----------邮箱检测
function check_email(email){
var reEmail=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
var b_email=reEmail.test(email);
if(b_email){
$("span")[3].innerHTML="<img src='yesok.gif'/> 邮箱可用";
flag[1]=1;
check_data();
}
else{
$("span")[3].innerHTML="<img src='yesno.gif'/> 邮箱错误";
flag[1]=0;
check_data();
}
}
//----------密码检测
function check_password(obj){
var pwd=$("input")[1].value;
var reChinese=/[\u0391-\uFFE5]+/;
var b_chinese=reChinese.test(pwd);
var reSpace=/\s+/;
var b_space=reSpace.test(pwd);
//-------长度测试
if(pwd.length<6){
$("span")[1].innerHTML="<img src='yesno.gif'/> 密码长度不能小于6";
flag[2]=0;
check_data();
}
//-------合法性检测:不能包含汉字
else if(b_chinese){
$("span")[1].innerHTML="<img src='yesno.gif'/> 密码不能包含中文";
flag[2]=0;
check_data();
}
//-------合法性检测:不能包含空格
else if(b_space){
$("span")[1].innerHTML="<img src='yesno.gif'/> 密码不能包含空格";
flag[2]=0;
check_data();
}
//-------合法时显示密码强度
else{
//定义对应的消息提示
var num=getResult(pwd);
var msg=new Array("<img src='bad.gif'/> 密码强度差","<img src='comm.gif'/> 密码强度一般","<img src='good.gif'/> 密码强度强壮");
$("span")[1].innerHTML=msg[num];
if($("input")[2].value!=""){
check_pw();
}
return flag[2]=1;
check_data();
}
}
//定义检测函数,返回0/1/2分别代表差/一般/强
function getResult(s){
var ls =-1;
if (s.match(/[a-z]/ig)){
ls++;
}
if (s.match(/[0-9]/ig)){
ls++;
}
if (s.match(/(.[^a-z0-9])/ig)){
ls++;
}
return ls;
}
//---------密码一致性检测
function check_pw(){
var pwd=$("input")[1].value.toString();
var check_pwd=$("input")[2].value.toString();
if(flag[2]==1){
if(pwd==check_pwd){
$("span")[2].innerHTML="<img src='yesok.gif'/> 密码可以使用";
flag[3]=1;
check_data();
}
else{
$("span")[2].innerHTML="<img src='yesno.gif'/> 两次密码不相同";
flag[3]=0;
check_data();
}
}
}
//---------用户名合法性检测
function check_id(id_name){//只能字母和数字,是否相同用AJAX判断
var reId=/^[\w\u0391-\uFFE5]+$/;
var b_id=reId.test(id_name);
if(!b_id){
$("span")[0].innerHTML="<img src='yesno.gif'/> ID命名非法";
flag[4]=0;
check_data();
}
else{//合法用户名用ajax的checkid()检测是否被注册过
checkid(id_name);
}
}
//---------检查数据,使提交按钮是否生效
function check_data(){
if(flag[0]==1 && flag[1]==1 && flag[2]==1 && flag[3]==1 && flag[4]==1 && flag[5]==1){
$("input")[8].disabled=false;
}
else{
$("input")[8].disabled=true;
}
}
//--------------------------------------------------------------------