查id #ctl00_ContentPlaceHolder1_TextBox1和asp.net的CustomValidator验证控件 笔记

时间:2022-01-06 00:56:47

当使用asp.net的CustomValidator控件的时候,可以在server端验证,也可以在客户端验证

在server端代码如下:

  protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)  

 {    

      int i = 0;
        if (int.TryParse(this.TextBox1.Text, out i))  

     {      args.IsValid = i % 2 == 0;  }  

     else  

     {       args.IsValid = false;   }  

  }  

注:验证一个textbox1接收的值是不是偶数

在客户端  在属性ClientValidationFunction 中填上javascript函数名 比如:checkdata

javascript 代码:

  function checkdata(source, args) {  

          
            var a = $("#<% =TextBox1.ClientID %>");    //在源文件中 ID:Textbox是#ctl00_ContentPlaceHolder1_TextBox1 ,用了母版页

       if (!a.val()) {

           alert(a.val());  

             alert("不能为空" );
                args.IsValid = false;          

                 }
                        var i =parseInt(a.val());    

       if (isNaN(i)) {    

           alert("不是是一个数字"+i);        

       args.IsValid = false;      

     }        

   else {
                args.IsValid = i % 2 == 0;      

         }
 }        

值得注意的是,当控件在母版页中,或者容器中时,$("#id")就找不到控件的id了,两种方法

1,var a = $("#<% =TextBox1.ClientID %>");

2.在源文件中查到  ctl00_ContentPlaceHolder1_TextBox1