输入用户名后, ajax验证用户是否已经存在,您们是如何实现的呢?》
有一种方式是textchange事件,但我感觉太不ajax了,给一段有水准的代码更好哦

解决方案 »

  1.   

    根据控件失去焦点来做:Onblur事件....
      

  2.   

    在新浪和搜狐上注册页上都有,一般网站的注册页也有.
    一般是在Onblur事件,把name传过去ajax,简单的就返回一个bool.复杂的就返回一个json
      

  3.   

    Onblur,要更实时的话用onkeyup+缓存
      

  4.   


     <script type="text/javascript" language="javascript">
        function GetXMLHttpRequest()
        {
         var xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
         return xmlHttp;
        }
        function checkusername()
        {
            xmlHttp=GetXMLHttpRequest();
            var url="Default2.aspx?id="+document.getElementById("Text2").value;
            xmlHttp.open("GET",url,true);
            xmlHttp.onreadystatechange=callback;
            xmlHttp.send();
            
        }
        function callback()
        {
            var message=document.getElementById("message");
            if(4==xmlHttp.readyState)
            {
                if(200==xmlHttp.status)
                {
                    var vail=xmlHttp.responseText;
                    message.innerHTML=(vail.toLowerCase()=="0")?"用户名可以使用":"用户名已存在"
                }
                else
                {
                    message.innerHTML="数据查询中";
                }
            }
        }
        
        </script><input id="Text2" type="text" onblur="checkusername()" />
        <span id="message"></span>
    然后在Default2.aspx中验证 string name = Request.QueryString["id"].ToString();
            SqlConnection con = new SqlConnection("连接字符串");
            string sql = "select count(*) from user where user_name='" + name + "'";
            SqlCommand cmd = new SqlCommand(sql, con);
            con.Open();
            int n = Convert.ToInt32(cmd.ExecuteScalar().ToString());
            con.Close();
       
            Response.Write(n.ToString());        Response.End();随便写写,也可以用一般处理程序ashx来验证。
      

  5.   

    <asp:textbox id="txt_User" runat="server" Width="70%"  MaxLength="20" ></asp:textbox>
    <span id="user_msg"></span> 
    this.txt_User.Attributes.Add("onblur", "check_user(this.value)");
     function check_user(id) {
                if (id == "")
                    return;
               document.getElementById("user_msg").innerHTML = "<img src='../images/loading.gif' align='absMiddle'> 检查中,请稍候……";            var url = "../RegistValidate.ashx?username=" + escape(id);
                xmlHttp.open("GET", url, true);
                xmlHttp.onreadystatechange = ShowResult;
                xmlHttp.send(null);
            }
            function ShowResult() {
                
                if (xmlHttp.readyState == 4) {
                    if (xmlHttp.status == 200) {
                        var s;
                        s = xmlHttp.responseText;
                        if (s== "OK")
                            document.getElementById("user_msg").innerHTML = "<img src='../images/correct.gif' align='absMiddle'>";
                        else
                            document.getElementById("user_msg").innerHTML = "<img src='../images/error.gif' align='absMiddle'>";
                        
                    }
                    else {
                        document.getElementById("user_msg").innerHTML = "<img src='../images/error.gif' align='absMiddle'> 错误:" + xmlHttp.status;
                    }
                }
               
            }public class RegistValidate : IHttpHandler
        {        public void ProcessRequest(HttpContext context)
            {
              string username = HttpUtility.UrlDecode(context.Request.QueryString["username"].ToString());
                if (查询用户)
                {
                    context.Response.Write("该用户名已经有人使用!" + username);
                }
                else
                {
                    context.Response.Write("OK");
                }
               
                System.Threading.Thread.Sleep(1000);
            }        public bool IsReusable
            {
                get
                {
                    return false;
                }
            }    
     }
      

  6.   


    <script language=javascript type=text/javascript>
    function checkUName()
        {
         if(document.all.TextBox1.value == "")
         {
             div1.innerHTML = "*";
             bResult = false;
         }
         else
         {
             var vResult = manageuser_USERADD.IsExist(document.all.TextBox1.value);
             if (vResult.value != 0)
             {
                 div1.innerHTML = "此用户名已经存在。"
                 bResult = false;
             }
             else
             {
                 div1.innerHTML = "";
             };
         }
        }
    </script>
    <asp:TextBox ID="TextBox1" runat="server" MaxLength="15" onblur="checkUName();" TabIndex="1" Height="22px" Width="153px"></asp:TextBox>
    <font color=red><div id=div4  style="clear:left;display:inline"></div></font>
    using AjaxPro;    [AjaxPro.AjaxMethod()]
        public int IsExist(string strUName)
        {
            ……
            return 0; 
        }