有时候在注册窗口,为了用户体验我们会用ajax无刷新检测用户名是否已被注册
复制代码 代码如下: //检测用户名是否被占用 function GetO(){ var ajax=false; try { ajax = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { ajax = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { ajax = false; } } if (!ajax && typeof XMLHttpRequest!='undefined') { ajax = new XMLHttpRequest(); } return ajax; } function getResult(serverPage) { var ajax = GetO(); var sep = (-1 < serverPage.indexOf("?")) ? "&" : "?" var newurl = serverPage + sep + "__=" + encodeURIComponent((new Date()).toString());
ajax.open("GET", newurl, true); ajax.onreadystatechange = function() { if (ajax.readyState == 4 && ajax.status == 200) { if(ajax.responseText==1){ ShowResult(1,"您的用户名可以正常注册") AjaxResult=true; }else{ ShowResult(0,"您的用户名被占用了") AjaxResult=false; } } } ajax.send(null);
} function chkUsername(){ var sflag;//标记; var sErr;//错误信息; sflag=true;
var re=/^\w{2,20}$/; if(!re.test(document.Form1.UserName.value)){ sflag=false; sErr="用户名只能输入字母、数字或下划线"; }
if (document.Form1.UserName.value.length>20||document.Form1.UserName.value.length<2){ sflag=false; sErr="用户名长度必须在2~20个字符之间"; } if (document.Form1.UserName.value=="" ){ sErr="用户名不能为空"; sflag=false; } //ajax检测返回结果 if (!sflag) { ShowResult(0,sErr) }else{ getResult("../MemberCheck.aspx?t=1&Name=" + document.Form1.UserName.value); }
//document.getElementById("spname").innerHTML=ss; } function ShowResult(tag,str){ var obj = document.getElementById("spname"); if(tag==0){ obj.style.border="1px solid red"; obj.style.color="red";
}else{ obj.style.border="1px solid green"; obj.style.color="green"; } obj.innerHTML=str; obj.style.padding="1px"; } //取ajax返回的用户问题值 function getQuestionData(sPage){ var ajax = GetO(); var sep = (-1 < sPage.indexOf("?")) ? "&" : "?" var newurl = sPage + sep + "__=" + encodeURIComponent((new Date()).toString());
ajax.open("GET", newurl, true); ajax.onreadystatechange = function() { if (ajax.readyState == 4 && ajax.status == 200) { if(ajax.responseText==""){ document.getElementById("getstate").innerHTML="用户不存在!" } else{ document.g.Question.value=ajax.responseText; document.g.Question.readOnly=true; document.getElementById("getpwdstep1").style.display="none"; document.getElementById("getpwdstep2").style.display="block"; document.getElementById("getstate").innerHTML="";
} } } ajax.send(null); } function getUserQ(){ //改变报错span的显示样式 document.getElementById("getstate").style.padding="1px 4px"; if (document.g.UserName.value==""){ document.getElementById("getstate").innerHTML="用户名不能为空!" }else{ document.getElementById("getstate").style.background="red"; document.getElementById("getstate").style.color="white"; document.getElementById("getstate").innerHTML="正在加载数据..."; //设置ajax getQuestionData("../MemberCheck.aspx?t=2&gName=" + document.g.UserName.value); } }
function login(n,p,t) { if(t==false){ document.getElementById("pLogin").style.display="none"; document.getElementById("LoginInfo").innerHTML="正在帮您登录,请稍等..."; } var request; if(undefined == request){ request = new Request(); }
if(undefined == request._get){ //不支持Ajax获取数据; if(t==false){ document.getElementById("pLogin").style.display=""; document.getElementById("LoginInfo").innerHTML="不能获取数据"; } } else{ userName=n; toPrev=t; request.GetNoCache(loginPath + "LoginCheck.aspx" + "?n=" + n + "&p=" + p,loginCheck); } } function loginCheck(result) { if (result.readyState!=ReadyState.Complete) return; //成功获取; if (result.status==HttpStatus.OK && result.responseText != "") { //执行返回的语句; //alert(result.responseText); if (result.responseText=='1') { if(toPrev ==false){ document.getElementById("LoginInfo").innerHTML='<ul><li>欢迎' + userName + '</li><li><a href="' + loginPath + 'member/">管理</a></li><li><a href="' + loginPath + 'Logout.aspx">退出</a></li></ul>'; } else{ if(UrlPrev != ''){ document.location.href=UrlPrev; } else{ document.location.href=loginPath; } } return; } else { if(document.location.href !="http://" + document.location.hostname + loginPath + "Member/Login.aspx") document.location.href=loginPath + "Member/Login.aspx"; } } else { //失败; document.location.href=loginPath + "Member/Login.aspx"; return; } } function checkKey(caputureKey,n,p,t){ var key = window.event.keyCode; if(key == caputureKey){ login(n,p,t); } } function setLoginInfo(bLogin){ if(bLogin){ document.getElementById("LoginInfo").innerHTML='<ul><li>欢迎' + userName + '</li><li><a href="' + loginPath + 'member/">管理</a></li><li><a href="' + loginPath + 'Logout.aspx">退出</a></li></ul>'; } else{ } } function gotoUrl(s){ window.location.href=loginPath + 'Member/RegUser.html'; }
|