我想做一个注册。
我想保持用户名的唯一性。
再用户输入完用户名后提示用户名是否可用。
请高手请教。
我在百度上搜了许多。
都说是用ajax去做。
谁能给我一个具体的方法啊???????

解决方案 »

  1.   

     学习一下,我知道可以用ajax做,但是具体还不知道怎样。
      

  2.   

    ajax 就是异步提交 不刷新页面。当点击提交按钮时调用脚本,脚本里通过ajax进行提交,将表单数据传入action里,然后和数据库做判断,判断此记录是否存在。然后返回给页面 然后判断返回值,如果有值 提示 此用户名存在,如果没值 提示可以注册。现在大多数网站都是这么做滴!
      

  3.   

    说白了,就是用户名拿到数据库里去检索下,有了就提示重复,用ajax就是前台直接跟数据库交互,不需要刷新,不用ajax就是servlet提交后,检验完成再返回注册页面,页面重新加载而已。看需要选择。
      

  4.   

      用dwr 做,超级简单   
      

  5.   

    建议DWR,例子很多,配置好就OK了
      

  6.   

    以前的一个项目,参考下吧。 <TD
    style="PADDING-RIGHT: 25px; PADDING-LEFT: 46px; PADDING-BOTTOM: 0px; PADDING-TOP: 1px"
    bgColor=#f5f4f4 height=34>用 户 名:&nbsp;&nbsp; <INPUT
    class=blueborder id=uname onblur=AjaxCheckName()
    onfocus=NameNotice() maxLength=30 size=30 name=uname>
    &nbsp;&nbsp;&nbsp;<SPAN class=banc>* &nbsp;</SPAN><SPAN class=banc
    id=nameLabel></SPAN></TD>/* 用户名失去焦点事件:验证用户名是否符合要求 */
    function AjaxCheckName() {
    if (document.getElementById("uname").value.trim() != "") {
    var reg = /[^\u4e00-\u9fa5\uf900-\ufa2d\w\d]/;
    var namelength = getCharsLength(document.getElementById("uname").value
    .trim()); if (namelength < 6 || namelength > 16) {
    document.getElementById("nameLabel").style.color = errorcolor();
    document.getElementById("nameLabel").innerHTML = "&nbsp;"
    + GetErrorImage() + "输入用户名长度不符合要求";
    document.getElementById("lengthchk").value = "1";
    document.getElementById("useridchk").value = "0";
    return;
    } else if (reg.test(document.getElementById("uname").value)) {
    document.getElementById("useridchk").value = "3";
    document.getElementById("nameLabel").style.color = errorcolor();
    document.getElementById("nameLabel").innerHTML = "&nbsp;"
    + GetErrorImage() + "包含非法字符";
    return;
    } else {
    reg = /^{|练习|测试|csai|操|屌|admin|guest|友生|yousheng|master|hitech|educity|neusoft|liugch|51zk|领导人|!|~|'|""|&|,|;|;|“|”|@|#|-|}/; if (reg.test(document.getElementById("uname").value)) {
    document.getElementById("useridchk").value = "3";
    document.getElementById("nameLabel").style.color = errorcolor();
    document.getElementById("nameLabel").innerHTML = "&nbsp;"
    + GetErrorImage() + "包含非法字符";
    return;
    } else {
    document.getElementById("lengthchk").value = "0";
    document.getElementById("useridchk").value = "0";
    } }
    } else { document.getElementById("nameLabel").innerHTML = "";
    return;
    } document.getElementById("nameLabel").innerHTML = "<img src='images/reg/loading.gif'>";
    document.getElementById("useridchk").value = "2";
    var userid = document.getElementById("uname").value;
    var enUft = encodeURI(userid);
    enUft = encodeURI(userid);
    // alert(enUft);
    CreateXmlhttp();
    Xmlhttp.onreadystatechange = StateChange;
    Xmlhttp.open("GET", "AjaxCheck.action?userid=" + escape(enUft)
    + "&parms=userid", true);
    Xmlhttp.send(null);}