注册 登录
编程论坛 jQuery论坛

无刷新检测用户名

雪雨星风 发布于 2008-06-27 09:29, 4359 次点击
无刷新检测用户名无刷新检测用户名功能为:当用户输入用户名,用户名的文本框失去焦点后就检测用户名是否重复,不用再点击一个按钮才能检测前台代码:
以下是引用片段:
这个是我在网上找的   我不知道怎吗用   哪位高手给注释一下    详细的
谢谢了



<script type="text/JavaScript" language="javascript">
        var XMLHttp = null;
        function CheckUser()
        {
            try
            {
                xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
            }
            catch(err1)
            {
                try
                {
                    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch(err2)
                {
                    xmlHttp = new XMLHttpRequest();
                }
            }
            var Text1 = document.getElementById("Text1");
            var url = "chkuser.aspx?User=" + Text1.value;
            xmlHttp.open("GET",url,true);
            xmlHttp.onreadystatechange = OnHandler;
            xmlHttp.send(null);
        }
        function OnHandler()
        {
            if(xmlHttp.readyState == 4)
            {
                var isValid = xmlHttp.responseText;
                var exists = document.getElementById("exsits");
                exists.innerHTML = isValid.substring(0,4);
            }
        }
</script>
<input id="Text1" type="text"  /><label d="exsits"></label><br />
  然后建一个chkuser.aspx,其后台代码改为:
以下是引用片段:
protected void Page_Load(object sender, EventArgs e)
    {
        string user = this.Request.QueryString["User"];
        if (UserExist(user))
        {
            Response.Write("存在");
        }
        else
        {
            Response.Write("不存在");
        }
    }
    private bool UserExist(string username)
    {
        ClassLib.Employee emp = new ClassLib.Employee();
        return emp.EmpNameExist(username);
    }
9 回复
#2
雪雨星风2008-06-27 16:30
这个板块连发帖的人都没有
#3
jankerli2008-07-11 00:44
怎么没有个人来解释一下呢!?
#4
zszts5202008-08-21 11:14
<script type="text/JavaScript" language="javascript">
        var XMLHttp = null;
        function CheckUser()
        {
            try
            {
                xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
               //对象初始化
            }
            catch(err1)
            {
                try
                {
                    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                    //这是针对浏览器不同,初始化也不同。这是ie浏览器初始化
                }
                catch(err2)
                {
                    xmlHttp = new XMLHttpRequest();
                  //这是其他浏览器
                }
            }
            var Text1 = document.getElementById("Text1");
            //获得text1这个对象
            var url = "chkuser.aspx?User=" + Text1.value;
             //这是要发送的地址
            xmlHttp.open("GET",url,true);
            //open有三个属性 传递的方法 ,地址,是否为异步传递。
            xmlHttp.onreadystatechange = OnHandler;
            //成功后调用的javascript方法
            xmlHttp.send(null);
            //传送,可带个参数,一般发送NULL
        }
        function OnHandler()
        {
            if(xmlHttp.readyState == 4)//判断对象的状态,等于4好像是完成可。
            {
                var isValid = xmlHttp.responseText;
                 //xmlHttp.responseText用来获取网页的数据。
                var exists = document.getElementById("exsits");
                exists.innerHTML = isValid.substring(0,4);
            }
        }
</script>
//我也没学多久,解释不太清楚,别怪我。
#5
zszts5202008-08-21 11:17
protected void Page_Load(object sender, EventArgs e)
    {
        string user = this.Request.QueryString["User"];
        if (UserExist(user))
        {
            Response.Write("存在");
        }
        else
        {
            Response.Write("不存在");
        }
    }
    private bool UserExist(string username)
    {
        ClassLib.Employee emp = new ClassLib.Employee();
        return emp.EmpNameExist(username);
    }

//这个页面就是上个页面url所指的页面,通过传来的参数,这页面接受后来判定是否存在,然后Response.Write出来。而xmlHttp.responseText获得的就是这存在与不存在。
#6
风月_无边2008-08-25 21:40
看下基本的ajax流程,就这几个函数
#7
seaven2008-09-09 09:11
这个例子很好啊 很简单
1