ajax 检测用户名是否被占用

所属分类: 网络编程 / AJAX相关 阅读数: 690
收藏 0 赞 0 分享

复制代码 代码如下:

//检测用户名是否被占用
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';
}

更多精彩内容其他人还在看

PHP+AJAX无刷新实现返回天气预报数据

天气数据是通过采集中国气象网站的。本来中国天气网站也给出了数据的API接口,接下来为大家介绍下用php来写一个天气预报的模块,感兴趣的朋友可以参考下
收藏 0 赞 0 分享

jQuery的ajax传参巧用JSON使用示例(附Json插件)

jQuery的ajax调用很方便,传参的时候喜欢用Json的数据格式,使用示例代码如下,感兴趣的朋友可以参考下,希望对大家有所帮助
收藏 0 赞 0 分享

ajax jquery 异步表单验证示例代码

异步表单验证想必大家早已如雷贯耳,本文为大家详细讲述下ajax jquery实现异步表单验证,感兴趣的朋友可以参考下
收藏 0 赞 0 分享

AJAX如何接收JSON数据示例介绍

如何使用AJAX返回JSON数据,就是dataType,当你设置json后返回的json字符串传递到客户端就是JSON对象了,示例如下,感兴趣的朋友可以参考下
收藏 0 赞 0 分享

ajax局部刷新一个div下jsp内容的方法

局部刷新某个div下的jsp可以通过setInterval或者是setTimeout来轻松实现,具体如下,有此需求的朋友可以参考下,希望对大家有所帮助
收藏 0 赞 0 分享

ajax交互Struts2的action(客户端/服务器端)

本文为大家探讨下ajax交互Struts2的action并有客户端及服务器端代码,感兴趣的朋友可以参考下,希望对大家有所帮助
收藏 0 赞 0 分享

Ajax工作原理深入理解

ajax是异步的意思,它有别于传统web开发中采用的同步的方式。异步传输是面向字符的传输,它的单位是字符;而同步传输是面向比特的传输,它的单位是桢,它传输的时候要求接受方和发送方的时钟是保持一致的
收藏 0 赞 0 分享

Ajax方式删除表格一行数据示例代码

Ajax方式删除信息在某些情况下还是蛮实用的,下面为大家具体介绍下Ajax方式如何删除表格一行数据,感兴趣的朋友可以了解下
收藏 0 赞 0 分享

Ajax叠加(Ajax返回数据用Ajax发出)示例代码

把参数用Ajax发送到数据库进行查询然后用Ajax将数据发送到数据库签到表,于是有了下面的代码,感兴趣的朋友可以了解下,希望对大家学习ajax有所帮助
收藏 0 赞 0 分享

Ajax长连接项目案例

所谓的长连接,就是不断去发送请求,把请求阻塞在服务器端,每次超过请求时间就去重新发送请求,下面以一个实例为大家详细介绍下,感兴趣的朋友可不要错过了哈
收藏 0 赞 0 分享
查看更多