<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Ajax在用户注册上的简单应用</title>
<script language=javascript>
var username_help='用户名长度为20位以内,只能由中文、英文字母、数字、中横杠("-")、下横杠("_")组成。';
var username_error='用户名超过了20个字符!';
var username_error_1='您的用户名输入格式不正确!';
var username_exist='您填写的用户名已经存在!';
var username_null='用户名不能为空!';
var password_help='密码6-20位英文字母、数字组成。为了您的帐户安全,建议您使用字母大小与数字混合设置密码。';
var password_too_simple='您设置的密码过于简单!';
var password_too_length='您设置的密码长度超过了20个字符!';
var password_null='密码不能为空。';
var repassword_help='请再输入一次登陆密码!';
var repassword_unsame='输入的登陆密码不一致,请重新输入!';
var repassword_null='验证密码不能为空!';
var email_help='请认真填写,便于企业或我们与您联系。';
var email_error='您的邮箱填写不正确!';
var email_exist='您使用的邮箱已经注册过,请登陆或者输入其他邮箱地址!';
var email_null='邮箱不能为空!';
var word_help='word_help';
var word_error='word_error';
var oTR;
var oTD;
//该函数可以创建我们需要的XMLHttpRequest对象 
function getHTTPObject()
 
var xmlhttp = false
 
if(window.XMLHttpRequest)
 xmlhttp 
= new XMLHttpRequest(); 
 
if(xmlhttp.overrideMimeType)
 xmlhttp.overrideMimeType('text
/xml'); 
 }
 
 }
else
 
try
 xmlhttp 
= new ActiveXObject("Msxml2.XMLHTTP"); 
 }
catch(e)
 
try
 xmlhttp 
= new ActiveXObject("Microsoft.XMLHTTP"); 
 }
catch(E){ xmlhttp = false; } 
 }
 
 }
 
 
return xmlhttp; 
}
 
var http = getHTTPObject();

function getAbsLeft(e){
 
var l=e.offsetLeft; 
 
while(e=e.offsetParent) l += e.offsetLeft; 
 
return l;
}

function getAbsTop(e) {
 
var t=e.offsetTop; 
 
while(e=e.offsetParent) t += e.offsetTop; 
 t
=t+18;
 
return t;
}

//-------------------------------------------------------
function onFouces(str){
 document.getElementById(str).className
='word_help';
 
if(str=='unamespan'){
 document.getElementById(str).innerHTML
=username_help;
 }
else if(str=='upw'){
 document.getElementById(str).innerHTML
=password_help;
 }
else if(str=='uhrtype'){
 document.getElementById(str).innerHTML
=hrtype_help;
 }
else if(str=='urpw'){
 document.getElementById(str).innerHTML
=repassword_help;
 }
else if(str=='uemail'){
 document.getElementById(str).innerHTML
=email_help;
 }

}

function backState(str)
 
if(str=='uname'){
 document.getElementById('username').keytype
=0;
 document.getElementById('unamespan').className
='gray';
 document.getElementById('unamespan').innerHTML
=username_help;
 }
else if(str=='pw'){
 document.getElementById('password').keytype
=0;
 document.getElementById('upw').className
='gray';
 document.getElementById('upw').innerHTML
=password_help;
 }
else if(str=="hr"){
 document.getElementById('hrlibtype').keytype
=0;
 document.getElementById('uhrtype').className
='gray';
 document.getElementById('uhrtype').innerHTML
=hrtype_help;
 
 }
else if(str=="rpw"){
 document.getElementById('passAgain').keytype
=0;
 document.getElementById('urpw').className
='gray';
 document.getElementById('urpw').innerHTML
=repassword_help;
 
 }

 
else if(str=="ue"){
 document.getElementById('email').keytype
=0;
 document.getElementById('uemail').className
='gray';
 document.getElementById('uemail').innerHTML
=email_help;
 
 }

}


function checkUserName_1(obj_str,num,obj_str1)
 
var obj=document.getElementById(obj_str);
 
var obj_help=document.getElementById(obj_str1);
 obj.keytype
=0;
 
if(obj.value.length==0){
 obj.keytype
=1;
 obj_help.innerHTML
=username_null;
 obj_help.className
=word_error;
 
return false
 }

 
if(obj.value.length>num){
 obj.keytype
=1;
 obj_help.innerHTML
=username_error;
 obj_help.className
=word_error;
 
return false
 }

 
//检查是否有不符合规定的字符
 var name_str=obj.value;
 name_str
=name_str.replace(/[\u4e00-\u9fa5]/g,'');
 name_str
=name_str.replace(/[a-zA-Z0-9_]/g,'');
 name_str
=name_str.replace(/-/g,''); 
 
if(name_str!='')
 obj.keytype
=1;
 obj_help.innerHTML
=username_error_1;
 obj_help.className
=word_error;
 
return false
 }

 
//检查用户名是否存在
 
 
var username =document.getElementById('username').value; 
 
 url
="/chksn.asp?username="+username; //如果用户名存在,chksn.asp的返回结果必须是“您填写的用户名已经存在”
 // alert(url);
 http.open("GET",url,true); 
 http.onreadystatechange 
= handleHttpResponseForUserName_1; 
 http.send(
null); 
 
if(obj.keytype==0){
 backState(
"uname");
 }
 
}

function handleHttpResponseForUserName_1()
 
if(http.readyState == 4)
 
if (http.status == 200
 returnStr
=Trim(http.responseText); 
 
if(returnStr=="您填写的用户名已经存在")
 
var obj_1=document.getElementById("unamespan"); 
 obj_1.innerHTML
=username_exist;
 document.getElementById(
"username").keytype=1
 obj_1.className
=word_error;
 
return false;
 }
 
 }

 }

}

function checkpw_1(obj_str,num,obj_str1)
 
var obj=document.getElementById(obj_str);
 
var obj_help=document.getElementById(obj_str1);
 obj.keytype
=0;
 
if(obj.value.length==0){
 obj.keytype
=1
 obj_help.innerHTML
=password_null;
 obj_help.className
=word_error;
 
return false;
 }

 
if(obj.value.length<num){
 obj.keytype
=1
 obj_help.innerHTML
=password_too_simple;
 obj_help.className
=word_error;
 
return false;
 }

 
if(obj.value.length>20){
 obj.keytype
=1
 obj_help.innerHTML
=password_too_length;
 obj_help.className
=word_error;
 
return false;
 }

 backState('pw');
}

function checkSame_1(obj_str,obj_str1,obj_targ)
 
var obj=document.getElementById(obj_str);
 
var obj1=document.getElementById(obj_str1);
 
var obj_help=document.getElementById(obj_targ);
 obj.keytype
=0
 
if(obj1.value.length==0){
 obj.keytype
=1
 obj_help.innerHTML
=repassword_null;
 obj_help.className
=word_error;
 
return false;
 }

 
if(obj.value!=obj1.value){
 obj.keytype
=1
 obj_help.innerHTML
=repassword_unsame;
 obj_help.className
=word_error;
 
return false;
 }

 backState('rpw');
}

function checkEmail_1(obj_str,obj_str1)
 
var obj=document.getElementById(obj_str);
 
var obj_help=document.getElementById(obj_str1);
 obj.keytype
=0
 
//验证电子邮件
 var str="";
 
var email =obj.value;
 
if(email.length==0){
 obj.keytype
=1;
 obj_help.innerHTML
=email_null;
 obj_help.className
=word_error;
 
return false
 }
else if (email.length < 8)
 
{
 obj.keytype
=1;
 obj_help.innerHTML
=email_error;
 obj_help.className
=word_error;
 
return false
 }
else{
 
if (email.indexOf("."<=0 || email.indexOf("@"== -1)
 
{ obj.keytype=1;
 obj_help.innerHTML
=email_error;
 obj_help.className
=word_error;
 
return false
 }
 
 }


 url
="/checkEmail.asp?email="+email; //如果email存在,checkEmail.asp的返回结果必须是“您使用的邮箱已经注册过,请登陆或者输入其他邮箱地址” 
 http.open("GET",url,true); 
 http.onreadystatechange 
= handleHttpResponseEmail; 
 http.send(
null);
}


function handleHttpResponseEmail()
 
if(http.readyState == 4)
 
if (http.status == 200
 returnStr
=Trim(http.responseText); 
 
if(returnStr=="您使用的邮箱已经注册过,请登陆或者输入其他邮箱地址")
 
var obj_1=document.getElementById("uemail"); 
 obj_1.innerHTML
=email_exist;
 document.getElementById(
"email").keytype=1
 obj_1.className
=word_error;
 
return false
 }
else if(document.getElementById("email").keytype==0){
 backState('ue');
 }

 }

 }

}

//-------------------------------------------------------
function checkpw(obj,num)
 
var rownum=obj.parentElement.parentElement.rowIndex; 
 obj.keytype
=0;
 
if(obj.value.length<num){
 obj.keytype
=1;
 oTD
=document.getElementById("reg_table").rows[rownum+1].cells[0]; 
 oTD.innerHTML
="<span class='"+word_error+"'>"+password_too_simple+"</span>" 
 
return false;
 }

 hidden_text(obj);
}

function checkSame(obj,obj_str1)
 
var rownum=obj.parentElement.parentElement.rowIndex; 
 obj.keytype
=0;
 
if(obj.value!=document.getElementById(obj_str1).value){
 obj.keytype
=1;
 oTD
=document.getElementById("reg_table").rows[rownum+1].cells[0]; 
 oTD.innerHTML
="<span class='"+word_error+"'>"+repassword_unsame+"</span>" 
 
return false;
 }

 hidden_text(obj);
}

function show_text(obj)
 
var rownum=obj.parentElement.parentElement.rowIndex;
 
if(obj.keytype==0){
 oTR
=document.getElementById("reg_table").insertRow(rownum+1);
 oTD
=oTR.insertCell(0);
 oTD.colSpan
=2;
 }
else{
 oTD
=document.getElementById("reg_table").rows[rownum+1].cells[0];
 }

 
if(obj.keytype2=="uname"){
 oTD.innerHTML
="<span class='"+word_help+"'>"+username_help+"</span>"
 }
else if(obj.keytype2=="hrtype"){
 oTD.innerHTML
="<span class='"+word_help+"'>"+hrtype_help+"</span>"
 }
else if(obj.keytype2=="pw"){
 oTD.innerHTML
="<span class='"+word_help+"'>"+password_help+"</span>" 
 }
else if(obj.keytype2=="rpw"){
 oTD.innerHTML
="<span class='"+word_help+"'>"+repassword_help+"</span>"
 }
else if(obj.keytype2=="eml"){
 oTD.innerHTML
="<span class='"+word_help+"'>"+email_help+"</span>"
 }
 

}

function hidden_text(obj)
 
var rownum=obj.parentElement.parentElement.rowIndex; 
 
//if(obj.keytype==0){
 document.getElementById("reg_table").deleteRow(rownum+1);
 
//}
}

function hidden_error(){
 document.getElementById(
"word_error").style.display='none';
}

function Trim(str) {
 
return RTrim(LTrim(str));
}

function LTrim(str) 
return str.replace(/^[ \t\n\r]+/g, "");
}


function RTrim(str) {
return str.replace(/[ \t\n\r]+$/g, "");
}

function validator()

 
if(document.PersonForm.username.keytype==1)
 
{
 
return false; }

 
if(document.PersonForm.password.keytype==1)
 
{
 
return false; }

 
if(document.PersonForm.passAgain.keytype==1)
 
{
 
return false; }
 
 
if(document.PersonForm.email.keytype==1)
 
{
 
return false;}

 
if(document.PersonForm.isaccept.checked==false)
 
{
 alert(
"您是否接受协议?");
 document.PersonForm.isaccept.focus();
 
return false;
 }

 
return true;
}

</SCRIPT>
<STYLE type=text/css>
.word_help 
{
 BORDER-RIGHT
: #00aaff 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #00aaff 1px solid; PADDING-LEFT: 28px; BACKGROUND: url(ico_at.gif) #e7f7ff no-repeat 3px 2px; PADDING-BOTTOM: 4px; BORDER-LEFT: #00aaff 1px solid; WIDTH: 100%; LINE-HEIGHT: 110%; PADDING-TOP: 6px; BORDER-BOTTOM: #00aaff 1px solid
}

.word_error 
{
 BORDER-RIGHT
: #ff3300 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #ff3300 1px solid; PADDING-LEFT: 28px; BACKGROUND: url(ico_err.gif) #fff3ef no-repeat 3px 2px; PADDING-BOTTOM: 4px; BORDER-LEFT: #ff3300 1px solid; WIDTH: 100%; LINE-HEIGHT: 110%; PADDING-TOP: 6px; BORDER-BOTTOM: #ff3300 1px solid
}

BODY 
{
 BACKGROUND-IMAGE
: none; BACKGROUND-COLOR: #b8b8b8
}

.gray 
{
 BORDER-RIGHT
: #ffffff 0px solid; PADDING-RIGHT: 0px; BORDER-TOP: #ffffff 0px solid; PADDING-LEFT: 25px; FONT-SIZE: 12px; BACKGROUND: url(ico_xing.gif) #ffffff no-repeat 3px 10px; PADDING-BOTTOM: 4px; VERTICAL-ALIGN: middle; BORDER-LEFT: #ffffff 0px solid; WIDTH: 300px; COLOR: #999999; LINE-HEIGHT: 120%; PADDING-TOP: 8px; BORDER-BOTTOM: #ffffff 0px solid
}

.tip 
{
 BORDER-RIGHT
: #666666 1px solid; BORDER-TOP: #666666 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #666666 1px solid; BORDER-BOTTOM: #666666 1px solid
}

.tip INPUT 
{
 BORDER-RIGHT
: #666666 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #666666 1px solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; BORDER-LEFT: #666666 1px solid; WIDTH: 137px; PADDING-TOP: 3px; BORDER-BOTTOM: #666666 1px solid; HEIGHT: 22px
}

</STYLE>
</head>
<body>
<FORM name=PersonForm onSubmit="return validator()" action=person.do?op=register method=post>
 
<TABLE id=reg_table cellSpacing=0 cellPadding=0 width="94%" align=left border=0>
 
<TBODY>
 
<TR>
 
<TD align=right width=120 height=50>用户名:</TD>
 
<TD align=left width=168><INPUT onblur="checkUserName_1('username',20,'unamespan')" onfocus="onFouces('unamespan')" name=username keytype2="uname" keytype="1">
 
<SPAN class=t></SPAN></TD>
 
<TD align=left><SPAN class=gray id=unamespan>用户名长度为20位以内,只能由中文、英文字母、数字、中横杠("-")、下横杠("_")组成。</SPAN></TD>
 
</TR>
 
<TR>
 
<TD align=right height=50>登录密码:</TD>
 
<TD align=left><INPUT onblur="checkpw_1('password',6,'upw')" onfocus="onFouces('upw')" type=password maxLength=30 name=password keytype2="pw" keytype=1>
 
</TD>
 
<TD align=left><SPAN class=gray id=upw>密码6-20位字母、数字、字符组成。为了您的帐户安全,建议您使用字母大小与数字混合设置密码。</SPAN></TD>
 
</TR>
 
<TR>
 
<TD align=right height=50>验证密码:</TD>
 
<TD align=left><INPUT onblur="checkSame_1('password','passAgain','urpw')" onfocus="onFouces('urpw')" type=password maxLength=30 name=passAgain keytype2="rpw" keytype="1">
 
</TD>
 
<TD align=left><SPAN class=gray id=urpw>请再输入一次登陆密码。</SPAN></TD>
 
</TR>
 
<TR>
 
<TD align=right height=50>E-MAIL:</TD>
 
<TD align=left><INPUT onblur="checkEmail_1('email','uemail')" onfocus="onFouces('uemail')" maxLength=64 name=email keytype2="eml" keytype="1"></TD>
 
<TD align=left><SPAN class=gray id=uemail>请认真填写,便于我们与您联系。</SPAN></TD>
 
</TR>
 
&nbsp;
 
<TR>
 
<TD align=right colSpan=2 height=66><INPUT class=input2 type=checkbox value=checkbox name=isaccept>
 接受
<href="#">《协议》</A></TD>
 
<TD>&nbsp;&nbsp;&nbsp;
 
<INPUT class=input_reg type=image height=26 width=104 src="buuton_reg.gif" border=0 name=image></TD>
 
</TR>
 
</TABLE>
</FORM>
</body>
</html>
posted on 2007-02-14 13:08  mbskys  阅读(324)  评论(0)    收藏  举报