var xmlDom = false;//XMLHTTP对象
var arr_UserName = new Array();//保存已经查询过的 用户名
var arr_BackInfo = new Array();//保存查询过的用户名 是否可以注册的信息
var canSubmit = false;//用户点击注册按钮,是否可以提交到服务器
var SignOutStr='<a href ="javascript:signout();" >注销</a>';//注销按钮的字符串表示,当登录成功后显现在页面上
//注册登录链接的字符串表示,当注销后显现在页面上
var LoginStr="<a href =\"javascript:loadcontrol('register.ashx');\" >注册</a> <a href =\"javascript:loadcontrol('login.ashx');\" >登录</a> ";
//创建一个xmlhttp
try
{
xmlDom = new ActiveXObject("Msxml2.XMLHTTP"); //IE高版本创建XMLHTTP
}
catch (E)
{
try
{
xmlDom = new ActiveXObject("Microsoft.XMLHTTP");//IE低版本创建XMLHTTP
}
catch (E)
{
xmlDom = new XMLHttpRequest(); //兼容非ie浏览器,直接创建XMLHTTP对象
}
}
//加载用户控件的工具方法
function loadcontrol(controlname)
{
var d = new Date();//创建一个随机时间,防止浏览器缓存
var strURL = controlname+"?type=0&guid=" + d.getTime();//请求的url
xmlDom.Open("get",strURL , true);
xmlDom.onreadystatechange = function(){
if (xmlDom.readyState == 4 )//已经加载
if(xmlDom.status == 200)//服务器返回成功
{
document.getElementById("main").innerHTML=xmlDom.responseText;
document.getElementById("loadingflag").style.display ='none';
}
else//出现错误
document.getElementById("loadingflag").innerHTML = "向服务器请求数据时出现错误!"
};
xmlDom.Send(xmlDom);
document.getElementById("loadingflag").style.display ='';//显示加载的提示效果
}
//------------------- 判断用户名是否重复----------------------------//
//注册时判断用户名是否符合规范,是否已经被注册
function j_username()
{
document.getElementById("NameError").innerHTML = "";//清空错误信息
var userName = document.getElementById("Txt_UserName").value;
var reg = "[^a-zA-Z_0-9]";//判断用户名只能为字母,数字,下划线的正则表达式
var reg1 = "\\D";//判断用户名必须以字母开头的正则表达式
if(userName == "")//用户名为空,不可以
{
document.getElementById("NameError").innerHTML = "<font color=\"red\">用户名不能为空!<font><br>";
canSubmit = false;
}
else if(userName.length < 5||userName.length > 18)//判断用户名长度
{
document.getElementById("NameError").innerHTML = "<font color=\"red\">你输入的用户名长度太短!长度必须为5~18位!<font><br>";
canSubmit = false;
}
else
{
if(!userName.substring(0,1).match(reg1))//用户名不是以字母开头
{
document.getElementById("NameError").innerHTML = "<font color=\"red\">必须已字母开头!<font><br>";
canSubmit = false;
}
else if(userName.match(reg))//用户名中出现其他特殊字符
{
document.getElementById("NameError").innerHTML = "<font color=\"red\">用户名只能是字母、数字、下划线!<font><br>";
canSubmit = false;
}
else
{
if(typeof(xmlDom) != 'undefined')
{
var isChecked = false;//是否检测过的bool变量
//遍历检测过的用户数组,看是否已经查询过这个用户是否存在,如果已经查询过就不用再次到服务器进行查询了
for(var i=0;i<arr_UserName.length;i++)
{
//这个账户名已经检测过。
if(document.getElementById("Txt_UserName").value == arr_UserName[i])
{
switch (arr_BackInfo[i])//根据检测过的账户信息数组,显示相应提示。
{
case "0":
document.getElementById("NameError").innerHTML = "<font color=\"red\">该用户名不符合注册规则,您可以尝试注册!<font><br>";
canSubmit = false;
break;
case "1":
document.getElementById("NameError").innerHTML = "<font color=\"red\">对不起,您注册的用户名已经存在!<font><br>";
canSubmit = false;
break;
case "2":
document.getElementById("NameError").innerHTML = "<font color=\"red\">恭喜您,该用户名无人使用!<font><br>";
canSubmit = true;
break;
}
isChecked = true;
break;
}
}
//账户没有相关信息,只能到服务器进行查询
if(!isChecked)
{
checkname(document.getElementById("Txt_UserName").value);
}
}
}
}
}
//向服务器发送请求,检测用户名是否已经被注册
function checkname(name)
{
var d = new Date();
var strURL = "register.ashx?type=1&name=" + name + "&guid=" + d.getTime();
xmlDom.Open("get",strURL , true);
xmlDom.onreadystatechange = fnRun;
xmlDom.Send(xmlDom);
document.getElementById("NameError").innerHTML = "<font color=\"red\">正在检测用户名是否重复...您可以尝试注册!<font><br>";
}
//点击注册按钮后 回调的函数,用于显示服务器返回的结果
function fnRun()
{
if (xmlDom.readyState == 4 && xmlDom.status == 200)//如果请求已经加载并且服务器返回成功
{
var str = xmlDom.responseText; //保存已经查询过的用户名,下次直接返回
arr_UserName[arr_UserName.length] = document.getElementById("Txt_UserName").value;//用户输入的账户名
arr_BackInfo[arr_BackInfo.length] = str;//把刚查询的用户名的返回结果存储起来,再次使用就不用向服务器请求了
switch (str)
{
case "0"://用户名不符合规则
document.getElementById("NameError").innerHTML = "<font color=\"red\">该用户名不符合注册规则,您不可以尝试注册!<font><br>";
canSubmit = false;
break;
case "1"://用户名已经注册
document.getElementById("NameError").innerHTML = "<font color=\"red\">对不起,您注册的用户名已经存在!<font><br>";
canSubmit = false;
break;
case "2"://可以注册
document.getElementById("NameError").innerHTML = "<font color=\"red\">恭喜您,该用户名无人使用!<font><br>";
canSubmit = true;
break;
}
}
}
//------------输入数据的检验------------------//
//验证密码是否符合规则
function j_password()
{
var password = document.getElementById("Txt_Password").value;
if (password.length < 6 || password.length > 12)//密码长度是否符合规则
{
document.getElementById("PwdError").innerHTML = "<font color=\"red\">密码长度不正确。<font>";
canSubmit = false;
return;
}
if (document.getElementById("Txt_UserName").value == password)//用户名和密码不能相同
{
document.getElementById("PwdError").innerHTML = "<font color=\"red\">为了您的安全,用户名与密码不能一致,请使用新的密码<font>";
canSubmit = false;
return;
}
var reg = "\\W";
if(password.match(reg))//密码是否出现英文或数字之外的字符
{
document.getElementById("PwdError").innerHTML = "<font color=\"red\">密码只能是英文或者数字!<font>";
canSubmit = false;
return;
}
canSubmit = true;//都符合条件,验证通过
document.getElementById("PwdError").innerHTML = "";
}
//判断两次输入的密码是否一致
function j_password1()
{
var password = document.getElementById("Txt_Password_AG").value;
if(password != document.getElementById("Txt_Password").value)//两次输入的密码不相同,出现错误提示
{
document.getElementById("PwdError2").innerHTML = "<font color=\"red\">两次输入的密码不一致,请重新输入!<font>";
document.getElementById("Txt_Password_AG").value = "";
canSubmit = false;
return;
}
//两次输入的密码相同,校验通过。
document.getElementById("PwdError2").innerHTML = "";
canSubmit = true;
}
//检验邮件格式是否正确
function j_email()
{
var email = document.getElementById("Txt_Email").value;/
评论0