关于自定义客户端验证脚本同时和服务器控件关联的一些心得

 .NET为我们提供了不少验证控件,一定程度上减少了程序员在开发上的工作量,但是有很多时候我们往往会需要自定义一些自己的验证流程,而无法通过.NET中所提供的验证控件来完成。通常验证的话,分为客户端和服务器端验证,这里我们所提到的验证都是指客户端验证。

最常见的做法便是自己写一段JavsScript脚本,根据验证是否通过返回true或者是false。然后通过controlID.Attribute[“事件“] = “JavaScript:FunctionName():”;来使服务器控件被触发的时候调用该JavaScript脚本函数。但是这样写,会有一个问题,那便是当这个页面上存在其它的.NET验证控件的时候,一旦通过自定义的脚本函数验证之后,将不会执行服务器验证控件的验证。

也就是说,当controlID.Attribute[“事件“] 的值若被置为true的时候,编译器便认为已经通过了所有的验证,包括.NET的验证控件,便不再进行验证,直接将空间中的代码送到服务器执行。但是这时其实尚未执行.NET的验证控件的验证。但只要我们把代码稍做改变,当执行完自定义的验证之后,依然可以继续执行.NET验证控件的验证。

Function Validate()
{
   if(....) //若通过验证
   { return true;}
   else
      {return false;}
}
随后我们在后代代码中加上
  controlID.Attribute[“事件“] = “JavaScript:if(!FunctionName()){return false;}:”;若没有通过我们的自定义验证,返回false,控件将不会被提交到服务器执行,否则,便继续执行页面上其他空间的验证。

有时候适当的进行一下逆向思维,往往会起到出其不意的效果。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值