var req;
        function CheckUserName() {
            var uName = document.getElementById('<%=txtUserName.ClientID%>').value;
            var uNameMs = document.getElementById('<%=uNameMessage.ClientID%>');
            if (uName != "") {
                if (uName.length >= 5 && uName.length <= 16) {
                    if (!(/>|<|,|\[|\]|\{|\}|\?|\/|\+|=|\||\'|\\|\"|:|;|\~|\!|\#|\*|\$|\@|\_|\-|\%|\^|\&|\(|\)|`/i).test(uName)) {
                        req = GetXmlHttpRequest();
                        req.open("get", "../ClientHandle/GetUserExists.ashx?userName=" + uName);
                        req.onreadystatechange = function() {
                            if (req.readyState == 4) {
                                if (req.status == 200) {
                                    if (req.responseText == "1") {
                                        uNameMs.innerHTML = "<img class='check_img' src='images/no.jpg' alt='' />&nbsp;用户名已存在";
                                        //alert("false");
                                        return false;
                                    }
                                    else {
                                        uNameMs.innerHTML = "<img class='check_img' src='images/yes.jpg' alt='' />";
                                        //alert("true");
                                        return true;
                                    }
                                }
                                else {
                                    uNameMs.innerHTML = "正在检测...4";
                                    //alert("200");
                                    return true;
                                }
                            }
                            else {
                                uNameMs.innerHTML = "正在检测...1";
                                //alert("4");
                                return true;
                            }
                        }
                        req.send(null);
                    }
                    else {
                        uNameMs.innerHTML = "<img class='check_img' src='images/no.jpg' alt='' />&nbsp;用户名不能包含特殊字符";
                        alert("t");
                        return false;
                    }
                }
                else {
                    uNameMs.innerHTML = "<img class='check_img' src='images/no.jpg' alt='' />&nbsp;用户名长度必须在5-16之间";
                    alert("c");
                    return false;
                }
            }
            else {
                uNameMs.innerHTML = "<img class='check_img' src='images/no.jpg' alt='' />&nbsp;用户名不能为空";
                alert("k");
                return false;
            }
        }我给每个可能返回的结果都加上alert("k");测试,当文本框失去焦点的时候,看到底真还是假,结果弹出的是最里的true,
GetXmlHttpRequest()是得到一个XmlHttpRequest对象!req.onreadystatechange = function() 下面的是想服务器发送一个请求验证用户名是否存在!
在注册页面的有个按钮,当CheckUserName()返回为真的时候就执行后台代码,向数据库中插入数据!
但是不知道为什么这个函数总是返回false,验证通过了也是false!我把最里面的ajax去掉,输入正确就返回值!
请教高手帮我检查下!

解决方案 »

  1.   

    下面的按钮我是这样判断的,OnClientClick="if(!CheckUserName()) return false;"
      

  2.   

    escape(uName)
    单步调试看看
    GetUserExists.ashx
      

  3.   


    这个没有错误!
    我 输入存在的用户,他验证出来了的,输入不存在的,
    他运行的
    else {
                                            uNameMs.innerHTML = "<img class='check_img' src='images/yes.jpg' alt='' />";
                                            //alert("true");
                                            return true;
                                        }
    这段代码!