javascript调用服务端验证控件

    //*******************Ajax 调用验证控件(客户端调用服务器验证控件)********************
                Page_ClientValidate(null); //页面上的所有验证控件执行验证
                //js 可以获得页面上所有的验证控件在客户端是否验证通过,
                // 在使用Page_IsValid前要先调用 Page_ClientValidate(null),因为他的默认值是true
                //alert(Page_IsValid);
                // ValidatorValidate(<%=RequiredFieldValidator1.ClientID%> , null, null)//调用指定的控件执行验证
                 // <%=RequiredFieldValidator1.ClientID%> .isValid=false;
                //alert(<%=RequiredFieldValidator1.ClientID%> .isvalid)//获得指定的验证控件在客户端是否验证通过

         var isValid = true; //全局验证

      //txtLogid控件失去焦点时触发事件(验证用户名是否存在)
                var IdExist = document.getElementById("<%=txtLogid.ClientID%>")
            IdExist.onblur = function () {
              doAjax("GET", null, "../isAjaxHelper.ashx?userId=" + IdExist.value,<%=CustomValidator1.ClientID%>)//调用Ajax 异步操作   
            }

    //Ajas PostGet传值方式,prars参数,url提交页面,ContralID验证控件id
        function doAjax(PostGet, prars, url,ContralID) {
            xhr.open(PostGet, url, true);  //设置参数

            //设置回调函数  callback (不是 callback())
          
            if (PostGet == "POST") {
                xhr.setRequestHeader("CONTENT-TYPE", "application/x-www-form-urlencoded");
                xhr.onreadystatechange = login;
                xhr.send(prars); //出发
            }
            else {
             xhr.onreadystatechange = function(){callback(ContralID)} ;
                xhr.send(null);
            }

        }
        //回调函数1
        function callback(ContralID) {
            //检查 异步对象 的准备状态是否=4,如果等于4说明服务器已经将数据发回给异步对象了
            if (xhr.readyState >= 4) {
                if (xhr.status == 200) {
                    var rest = xhr.responseText
                    if (rest != null) {
                        if (rest == 1) {
                            isValid = true;
                        }
                        else {
                            isValid = false;
                        }
         //***************调用指定的控件执行验证会执行ClientValidate(source, arguments)方法*****************
                         ValidatorValidate(ContralID , null, null);
                    }
                } //正常返回,判断服务器返回的状态码是否=200
                else {
                    alert(xhr.status);
                }
            }
        }

     //**************************自定义验证控件设置是否验证通过***************************
        function ClientValidate(source, arguments) {
            if (isValid) {//用户名存在
                arguments.IsValid = true;
            } else {
                arguments.IsValid = false;
            }
        }

---------------------------------------------------------------------------------------

                                <td valign="top" width="37%" align="left" style="height: 26px">
                                    <asp:TextBox ID="txtLogid" runat="server"></asp:TextBox>
                                    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" BackColor="White"
                                        ControlToValidate="txtLogid" Display="Dynamic" ErrorMessage="用户名不能为空" InitialValue=""
                                        ForeColor="Red">*</asp:RequiredFieldValidator>
                                    <asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="用户名已存在" ControlToValidate="txtLogid"
                                        ClientValidationFunction="ClientValidate" Display="Dynamic" ForeColor="Red">*</asp:CustomValidator>
                                    <label id="LabUser" style="color: Red; font: menu">
                                    </label>
                                </td>

------------------------------------------------------------------------------------------

以上是前台代码 有自定义验证控件(   <asp:CustomValidator ID="CustomValidator1" runat="server")  由于后台代码我是写在一般处理程序

我不知道怎么做自定义验证控件服务端验证 希望大神们指点下

原文地址:https://www.cnblogs.com/520cc/p/2751482.html