[原创] 也谈ajax无刷新回调判断用户名是否存在。

头几天飞你大哥发了一篇用的ajax.net回调判断的用户名是否存在,而我不喜欢用ajax.net的框架而喜欢用最底层的js+xmlhttp对象来处理异步数据,因为我觉得这样是最灵活的。

好了,费话不多说现在开始吧:

先给出一个js的ajax.js引用文件代码。

[原创] 也谈ajax无刷新回调判断用户名是否存在。 //  JavaScript Document 
[原创] 也谈ajax无刷新回调判断用户名是否存在。
    // function HTTRequest() 
[原创] 也谈ajax无刷新回调判断用户名是否存在。
   HTTPRequest = function ()
[原创] 也谈ajax无刷新回调判断用户名是否存在。           
var xmlhttp=null
[原创] 也谈ajax无刷新回调判断用户名是否存在。           
try{    
[原创] 也谈ajax无刷新回调判断用户名是否存在。             xmlhttp
=new ActiveXObject('MSXML2.XMLHTTP.4.0');    
[原创] 也谈ajax无刷新回调判断用户名是否存在。           }
catch(e){    
[原创] 也谈ajax无刷新回调判断用户名是否存在。                   
try{    
[原创] 也谈ajax无刷新回调判断用户名是否存在。                             xmlhttp
=new ActiveXObject('MSXML2.XMLHTTP.3.0');    
[原创] 也谈ajax无刷新回调判断用户名是否存在。                     }
catch(e){    
[原创] 也谈ajax无刷新回调判断用户名是否存在。                             
try{    
[原创] 也谈ajax无刷新回调判断用户名是否存在。                                     xmlhttp
=new ActiveXObject('MSXML2.XMLHTTP.2.6');    
[原创] 也谈ajax无刷新回调判断用户名是否存在。                             }
catch(e){    
[原创] 也谈ajax无刷新回调判断用户名是否存在。                                     
try{    
[原创] 也谈ajax无刷新回调判断用户名是否存在。                                             xmlhttp
=new ActiveXObject('MSXML2.XMLHTTP');    
[原创] 也谈ajax无刷新回调判断用户名是否存在。                                     }
catch(e){    
[原创] 也谈ajax无刷新回调判断用户名是否存在。                                             
try{    
[原创] 也谈ajax无刷新回调判断用户名是否存在。                                                    xmlhttp
=new ActiveXObject('Microsoft.XMLHTTP');    
[原创] 也谈ajax无刷新回调判断用户名是否存在。                                             }
catch(e)
[原创] 也谈ajax无刷新回调判断用户名是否存在。                                                   
try
[原创] 也谈ajax无刷新回调判断用户名是否存在。                                                           xmlhttp
=new ActiveXObject("Microsoft.XMLHTTP"); 
[原创] 也谈ajax无刷新回调判断用户名是否存在。                                                   }
catch (E){} 
[原创] 也谈ajax无刷新回调判断用户名是否存在。                                           }
 
[原创] 也谈ajax无刷新回调判断用户名是否存在。                                   }
 
[原创] 也谈ajax无刷新回调判断用户名是否存在。                           }
 
[原创] 也谈ajax无刷新回调判断用户名是否存在。                   }
 
[原创] 也谈ajax无刷新回调判断用户名是否存在。           }
 
[原创] 也谈ajax无刷新回调判断用户名是否存在。           
if(!xmlhttp && typeof XMLHttpRequest!='undefined')
[原创] 也谈ajax无刷新回调判断用户名是否存在。                   
try
[原创] 也谈ajax无刷新回调判断用户名是否存在。                           xmlhttp
=new XMLHttpRequest(); 
[原创] 也谈ajax无刷新回调判断用户名是否存在。                   }
catch(e)
[原创] 也谈ajax无刷新回调判断用户名是否存在。                           xmlhttp
=false
[原创] 也谈ajax无刷新回调判断用户名是否存在。                   }
 
[原创] 也谈ajax无刷新回调判断用户名是否存在。           }
 
[原创] 也谈ajax无刷新回调判断用户名是否存在。   
return xmlhttp; 
[原创] 也谈ajax无刷新回调判断用户名是否存在。   }
 
[原创] 也谈ajax无刷新回调判断用户名是否存在。
在aspx页面上用 CustomValidator 验证控件来完成进行回调判断。

[原创] 也谈ajax无刷新回调判断用户名是否存在。 < asp:TextBox  ID ="memberName"  runat ="server"  Width ="174px"  MaxLength ="12" ></ asp:TextBox >
[原创] 也谈ajax无刷新回调判断用户名是否存在。                            
< asp:RegularExpressionValidator  ID ="nameREV"  runat ="server"  ControlToValidate ="memberName"  ErrorMessage ="用户名必须为6-12位"  EnableClientScript ="true"  ValidationExpression ="\w{6,12}"  Display ="Dynamic"  ValidationGroup ="reg" ></ asp:RegularExpressionValidator >< asp:RequiredFieldValidator  ID ="nameRFV"  runat ="server"  EnableClientScript ="true"  ControlToValidate ="memberName"  ErrorMessage ="用户名不能为空"  Display ="Dynamic"  ValidationGroup ="reg" ></ asp:RequiredFieldValidator >< asp:CustomValidator  ID ="cv"  runat ="server"  Display ="Dynamic"  ControlToValidate ="memberName"  ValidationGroup ="reg"  SetFocusOnError ="true"  ErrorMessage ="用户名已存在"  ClientValidationFunction ="checkMember" ></ asp:CustomValidator >

在这里CustomValidator 控件有一个ClientValidationFunction为客户端验证方法。对应的checkMember就是验证函数的函数名。代码如下:
[原创] 也谈ajax无刷新回调判断用户名是否存在。 function  checkMember(sender,args) 
[原创] 也谈ajax无刷新回调判断用户名是否存在。       

[原创] 也谈ajax无刷新回调判断用户名是否存在。           
var memberName=form1.memberName.value; 
[原创] 也谈ajax无刷新回调判断用户名是否存在。           
var xmlhttp; 
[原创] 也谈ajax无刷新回调判断用户名是否存在。           
var url="callBack/callMemberName.aspx?memberName="+memberName 
[原创] 也谈ajax无刷新回调判断用户名是否存在。           xmlhttp
=new HTTPRequest; 
[原创] 也谈ajax无刷新回调判断用户名是否存在。           xmlhttp.onreadystatechange
=function(){checkBack(xmlhttp,args);}
[原创] 也谈ajax无刷新回调判断用户名是否存在。           xmlhttp.open(
"GET",url,false); 
[原创] 也谈ajax无刷新回调判断用户名是否存在。           xmlhttp.setRequestHeader(
"CONTENT-TYPE","application/x-www-form-urlencoded"); 
[原创] 也谈ajax无刷新回调判断用户名是否存在。           xmlhttp.send(
null); 
[原创] 也谈ajax无刷新回调判断用户名是否存在。           
return false
[原创] 也谈ajax无刷新回调判断用户名是否存在。       }
 
[原创] 也谈ajax无刷新回调判断用户名是否存在。       
function  checkBack(xmlhttp,args) 
[原创] 也谈ajax无刷新回调判断用户名是否存在。       

[原创] 也谈ajax无刷新回调判断用户名是否存在。           args.IsValid
=false
[原创] 也谈ajax无刷新回调判断用户名是否存在。            
[原创] 也谈ajax无刷新回调判断用户名是否存在。           
if (xmlhttp.readyState==4)
[原创] 也谈ajax无刷新回调判断用户名是否存在。               
if(xmlhttp.responseText=="1"
[原创] 也谈ajax无刷新回调判断用户名是否存在。               

[原创] 也谈ajax无刷新回调判断用户名是否存在。                   args.IsValid
=true
[原创] 也谈ajax无刷新回调判断用户名是否存在。               }
 
[原创] 也谈ajax无刷新回调判断用户名是否存在。           }
 
[原创] 也谈ajax无刷新回调判断用户名是否存在。       }
 
[原创] 也谈ajax无刷新回调判断用户名是否存在。
这断代码的向callBack/callMemberName.aspx页面发送了一个请求,如果页面请求返回的是  1 那么就验证通过。如果不为1就表示用户名已经存在。
callBack/callMemberName.aspx负责处理用户是否存在的服务器端信息。

好了,就这么多了,希望和大家一起交流共同提高。
http://www.codes63.net/showtopic-1054.aspx

你可能感兴趣的:(Ajax)