我在客户端写了一段javascript <script type="text/javascript">
    var xmlHttp;
    function checkName()
    {
        createXMLHTTP();
        var username = document.getElementById("txt_UserName");
        var url = "time.aspx?username="+username.value;
        xmlHttp.open("GET",url,true);
        xmlHttp.onreadystatechange = checkUserName;
        xmlHttp.send(null);
    }
    function createXMLHTTP()
    {
        if(window.XMLHttpRequest)
        {
            xmlHttp=new XMLHttpRequest();//mozilla浏览器
        }
        else if(window.ActiveXObject)
        {    
            try
            {
                xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");//IE老版本
            }
            catch(e)
            {}
            try
            {
                xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");//IE新版本
            }
            catch(e)
            {}
            if(!xmlHttp)
            {
                window.alert("不能创建XMLHttpRequest对象实例!");
                return false;
            }
        }
    }    
    function checkUserName()
    {
        if(xmlHttp.readyState==4)
        {
            if(xmlHttp.status==200)
            {
                if(xmlHttp.responseText=="true")
                {
                    document.getElementById("d").innerHTML="输入正确!";
                }
                else
                {
                    document.getElementById("d").innerHTML="输入错误!";
                }
            }
        }
    }
    </script>
然后在time.aspx.cs里写了 if (Request.QueryString["username"].ToString() != "" && Request.QueryString["username"].ToString() != string.Empty)
        {
            if (Request.QueryString["username"].ToString().Length > 4)
            {
                Response.Expires = -1;
                Response.Write("true");
            }
            else
            {
                Response.Expires = -1;
                Response.Write("false");
            }
        }
可是执行的时候刚输入两个字就说输入错误,输入到4个字以上那个div不会在变了
帮小弟看下哪里错了?

解决方案 »

  1.   

     <td>
                        用户:
                    </td>
                    <td>
                        <input type="text" id="txt_UserName" onkeyup="checkName()" /><br />
                    </td>
                    <td>
                        <div id="d" style="border: 1px solid #B6D2E0;">
                            
                        </div>
                    </td>
    忘了补充了
    是在onkeyup的时候
      

  2.   


               if (Request.QueryString["username"].ToString().Length > 4)
    //这里返回的是你输入字符的长度!不是你要验证的逻辑!
                {
                    Response.Expires = -1;
                    Response.Write("true");
                }
                else
                {
                    Response.Expires = -1;
                    Response.Write("false");
                }
      

  3.   

    这里获得传过来的那个txt_UserName的值,然后判断他的长度有大于4不?有的话就输出true.
    然后客户端那里接受true,div就显示输入正确,不是这样吗?
      

  4.   

    额~客户端ajax不是这样的吗?
    在一个页面写js,然后传到另外一个页面接收,在把值传到刚那个页面
    不是这样吗?
    期待高手来帮小弟解决
      

  5.   

    (Request.QueryString["username"].ToString().Length>4)
     
    我想请问一下,编程里1代表的是一个字母还是一个汉字,而你这个4代表的是几个字符?
      

  6.   

    改为8也一样
    还是输入错误
    我都输这么长了zzzzzzzzzzzzzzzzzzzzzzzz
      

  7.   

    document.write(document.getElementById("txt").value.length);
    我这样试了下
    输入zz显示2
    输入太阳显示的还是2
      

  8.   

    这个是在default.aspx页面里的 <script type="text/javascript">
        var xmlHttp;
        function checkName()
        {
            createXMLHTTP();
            var username = document.getElementById("txt_UserName");
            var url = "time.aspx?username="+username.value;
            xmlHttp.open("GET",url,true);
            xmlHttp.onreadystatechange = checkUserName;
            xmlHttp.send(null);
        }
        function createXMLHTTP()
        {
            if(window.XMLHttpRequest)
            {
                xmlHttp=new XMLHttpRequest();//mozilla浏览器
            }
            else if(window.ActiveXObject)
            {    
                try
                {
                    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");//IE老版本
                }
                catch(e)
                {}
                try
                {
                    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");//IE新版本
                }
                catch(e)
                {}
                if(!xmlHttp)
                {
                    window.alert("不能创建XMLHttpRequest对象实例!");
                    return false;
                }
            }
        }    
        function checkUserName()
        {
            if(xmlHttp.readyState==4)
            {
                if(xmlHttp.status==200)
                {
                    if(xmlHttp.responseText=="true")
                    {
                        document.getElementById("d").innerHTML="输入正确!";
                    }
                    else
                    {
                        document.getElementById("d").innerHTML="输入错误!";
                    }
                }
            }
        }
        </script></head>
    <body>
        <form id="form1" runat="server">
        <div>
            <table>
                <tr>
                    <td>
                        用户:
                    </td>
                    <td>
                        <input type="text" id="txt_UserName" onblur="checkName()" /><br />
                    </td>
                    <td>
                        <div id="d" style="border: 1px solid #B6D2E0;">
                            
                        </div>
                    </td>
                </tr>
                <tr>
                    <td>
                        密码:
                    </td>
                    <td>
                        <input type="text" id="txt_Password" /><br />
                    </td>
                    <td>
                        <div id="d_Password" style="display: none; border: 1px solid #B6D2E0;">
                            密码长度大于5
                        </div>
                    </td>
    这个写在time.aspx.cs里
     protected void Page_Load(object sender, EventArgs e)
        {        if (Request.QueryString["username"].Trim().ToString().Length > 8)
            {
                Response.Expires = -1;
                Response.Write("true");
            }
            else
            {
                Response.Expires = -1;
                Response.Write("false");
            }    }
      

  9.   

    长度验证直接在客户端完成,没必要去访问服务器。    function checkName()
        {
            var username = document.getElementById("txt_UserName");
            if(username.length<4)
              document.getElementById("d").innerHTML="输入错误!";
        }
      

  10.   

    lz 你要做撒?http://topic.csdn.net/u/20100120/09/7774f539-ee04-4875-a3f6-4d844aa733bf.html
      

  11.   

    长度验证直接在客户端完成,没必要去访问服务器。 JScript codefunction checkName() {var username= document.getElementById("txt_UserName");if(username.length<4) document.getElementById("d").innerHTML="输入错误!"; } 还有的是要和数据库里判断的 
    判断有没有是已注册过的- - 
    不然我当然知道要在客户端判断了