请教怎么样用js判断用户名唯一,用ajax技术实现?

解决方案 »

  1.   

    //验证登录名是否存在
            function checkNickName()
            {
                var nickName=document.getElementById("nickName").value;
                var url="user.do?command=checkNickName&nickName="+encodeURI(nickName);
                if(window.XMLHttpRequest)
                {
                    req=new XMLHttpRequest();
                }else if(window.ActiveXObject)
                {
                    req=new ActiveXObject("Microsoft.XMLHTTP");
                }
                if(req)
                {
                    req.open("GET",url,true);
                    req.onreadystatechange=backNickName;
                    req.send(null);
                }
            }
            
            function backNickName()
            {
                if(req.readyState == 4)
                {
                    if(req.status == 200)
                    {
                        var str = req.responseText;
                        if(str=="true"){
    document.registerForm.sbm.disabled = false;
    document.getElementById("testNickName").innerHTML = "";
                        }else{
                         document.getElementById("testNickName").innerHTML = str;
                         document.registerForm.sbm.disabled = true;
                         document.getElementById("testNickName").style.color = "red";
                        }                 
                    }else{
                        alert("Not able to retrieve description"+req.statusText);
                    }
                }
            }
    后台有个UserAction的一个方法checkNickName()来接收用户输入的用户名,判断其是否已在数据库中存在,若用户名不存在,就
    request.setAttribute("str","true");  然后前台有js代码接收这个“str”判断其内容来执行相应的动作
      

  2.   

    先按照用户输入的用户名,进行查询,在页面判断返回结果就可以了
    我有这方面的实例,
    [email protected]
    我可以发给你
      

  3.   

    非常简单,1楼写的就是可以,不过他写的好象只有前台。AJAX都是固定写法,就那几步,1.创建个HTTP对象.2.发送请求.3.后台处理接到的请求.将结果返回.4.前台接收请求以后用JS脚本刷新页面。
    就拿1楼的位例子吧,先获取用户名,然后以参数的形式挂在后边,url是你请求的地址,这个请求你发给一个jsp,一个servlet或一个Action,都可以想发给谁发给谁,用request.getParameter()接,估计你肯定知道,接到名字以后你就自己去数据库里查吧,有或者没有,返回个转台就可以。
    接收请求那端这么写
    String name = request.getParameter();
    ....//你的查询语句
    PrintWriter out = response.getWriter();//这个是返回消息要用的对象
    out.write("Y");//你随便写一个字符串,前台判断这个字符串的值就行了,比如你查询重复了回个Y,没重复回个N
    out.flush();
    一楼的这句
    var str = req.responseText; //这个就是你返回的值,如果你按我上边那么写str这个时候值是Y
     if(str=="y"){ alert("重复");}
    else{
    alert("不重复");
    }
    就这样。上边的            if(req.readyState == 4) 
                { 
                    if(req.status == 200) 
                    {}
    }
    这些你完全不用管他,都是协议规定死的,你复制就可以了。