通过Js设置Validation验证控件Enable属性

        有时我们需要让页面上的一部分验证控件不起作用。又不想回发到后台去改变验证控件的Enable属性。

        这时就需要利用Js设置验证控件的Enable属性。直接设置Enable属性是不好使的。

        所以要通过一个函数来实现此功能。函数名称为:ValidatorEnable(val,enable).

        这个函数可以将验证控件的属性设置成功,也可以通过前台的验证。就是后台的Page.IsValid仍然是False.

        所以我用了一个HiddenField存储前台验证通过标识。后台做一个或的判断就可以通过验证,并执行后台代码。

        如:if(Page.IsValid || this.hdf_flag.Value.Equals("true"))

注:ValidatorEnable 详细说明:http://msdn.microsoft.com/en-us/library/aa479045.aspx

实例如下:

 

前台代码:

< script type = " text/javascript " >
function validChange() {
                    
//  Do nothing if client validation is not active
                     if  ( typeof  (Page_Validators)  ==   " undefined " return ;
                    ValidatorEnable(document.getElementById(
' <%=Validatorfriendname2.ClientID %> ' ),  false );
                    ValidatorEnable(document.getElementById(
' <%=ValidatorPosition2.ClientID %> ' ), false );

                }
                 function validPages() {
                                
                                 var flag 
=  document.getElementById( ' <%=hdf_flag.ClientID %> ' )
                                 validChange();
                 Page_ClientValidate();
                 
if  (Page_IsValid) {                             // 用于判断前台页面验证控件是否全部通过验证,通过为True
                     flag.value  =   " true " ;
                    } 
else  {
                     flag.value 
=   " false " ;
                    }
            }
</ script >


< div >
< asp:HiddenField ID = " hdf_flag "  runat = " server "   />
姓名:
< input id = " txt_name "  runat = " server "  type = " text "  maxlength = " 20 "   />
< asp:RequiredFieldValidator ID = " Validatorfriendname2 "  runat = " server "  ControlToValidate = " txt_name "
                    Display
= " Dynamic "  EnableClientScript = " true "  ErrorMessage = " * " ></ asp:RequiredFieldValidator >                     
职业:
< input type = " text "  id = " txt_Position "  runat = " server "   maxlength = " 20 "   />
      
< asp:RequiredFieldValidator ID = " ValidatorPosition2 "  EnableClientScript = " true "  runat = " server "
                    ControlToValidate
= " txt_Position "  Display = " Dynamic "  ErrorMessage = " * " ></ asp:RequiredFieldValidator >
 
 
< asp:ImageButton ID = " ibn_storeRecord "  runat = " server "  ImageUrl = " Img/icon_baocun.gif "
                hspace
= " 5 "  OnClick = " ibn_storeRecord_Click "  OnClientClick = " validPages(); "  
                Height
= " 21px "   />
</ div >

  后台代码:

protected   void  ibn_storeRecord_Click( object  sender, ImageClickEventArgs e)
    {
        
if  (Page.IsValid  ||   this .hdf_flag.Value.Equals( " true " ))
        {
            
// TODO:
        }
    }

转载于:https://www.cnblogs.com/aprillee/archive/2008/09/23/1297003.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值