zoukankan      html  css  js  c++  java
  • 今日工作心得:验证控件与button的onclientclick事件

    今天工作中发现由于在button上写了onclentclick事件“return checkFileType()”对上传的文件类型进行判断,导致页面中的验证控件并不执行。

    <script type="text/javascript" language="javascript">
        function checkFileType()
        {
          var Types="<%=UploadFileTypes%>";
          if($("#ASPxRoundPanel1_fuAccessory")[0].value=="")
          {
              return true;
          }
          if($("#ASPxRoundPanel1_fuAccessory")[0].value.lastIndexOf(".")!=-1)/*如果没有就会返回-1*/
          {
                var fileType=$("#ASPxRoundPanel1_fuAccessory")[0].value.substring($("#ASPxRoundPanel1_fuAccessory")[0].value.lastIndexOf(".")+1);
                var TypesArray=Types.split("|");
                for(var i =0;i<TypesArray.length;i++)
                {
                  if(TypesArray[i]==fileType)
                   {
                     return true;                
                   }
                  else
                   {
                      continue;
                    }
                 }
          }
          alert("该文件类型不允许上传!");
          return false;
        }
        </script>

    上网查到一个关于此问题的详细文章:

    http://www.cnblogs.com/jiahaipeng/archive/2008/12/16/1355543.html。按照上面的方法在html里面添加了js方法触发页面的验证行为。

    <script language="javascript" type="text/javascript">
         function CheckClientValidate(){     
           Page_ClientValidate();
           if (Page_IsValid){
               return true;
           }else{
               return false;
           }
         }
        </script>

    再为button增加客户端属性(这个属性可以写在onclientclick中)

    btnOK.Attributes.Add("onclick", "if(CheckClientValidate()){return checkFileType();}");

    页面正常执行,但是仍有几个问题不解,主要是关于 Page_ClientValidate()这句话和Page_IsValid的不理解。这根微软的验证控件工作原理有关,待查阅相关的文档。

    一篇博文写道:Page_ClientValidate(),本函数用于在包含微软验证控件的aspx页面中,根据用户输入操作是否合法,返回True或者False (出自http://blog.csdn.net/rmb147/archive/2008/08/27/2837098.aspx)。目前我只能臆断是不是就是Page_ClientValidate()执行后返回的值赋给了Page_IsValid。(基本功不深,实在脸红)

    还有一个收获就是sqlserver中的DateAdd(interval, number, date)
    函数适用方法:

    DateAdd函数 返回

      返回包含一个日期的 Variant (Date),这一日期还加上了一段时间间隔。

      语法

      DateAdd(interval, number, date)

      DateAdd 函数语法中有下列命名参数:

      部分 描述

      interval 必要。字符串表达式,是所要加上去的时间间隔。

      number 必要。数值表达式,是要加上的时间间隔的数目。其数值可以为正数(得到未来的日期),也可以为负数(得到过去的日期)。

      date 必要。Variant (Date) 或表示日期的文字,这一日期还加上了时间间隔。

      设置

      interval 参数具有以下设定值:

      设置 描述

      yyyy 年

      q 季

      m 月

      y 一年的日数

      d 日

      w 一周的日数

      ww 周

      hh 时

      n 分钟

      s 秒

      说明

      可以使用 DateAdd 函数对日期加上或减去指定的时间间隔。例如,可以用 DateAdd 来计算距今天为三十天的日期;或者计算距现在为 45 分钟的时间。

      为了对 date 加上“日”,可以使用“一年的日数” (“y”),“日” (”d”) 或“一周的日数” (”w”)。

      DateAdd 函数将不返回有效日期。在以下实例中将 1 月31 日加上一个月:

      DateAdd(m, 1, 31-Jan-95)

      上例中,DateAdd 返回 1995 年 2 月 28 日,而不是 1995 年 2 月 31 日。如果 date 是 1996 年 1 月 31 日,则由于 1996 年是闰年,返回值是 1996 年 2 月 29 日。

      如果计算的日期超前 100 年(减去的年度超过 date 中的年份),就会导致错误发生。

      如果 number 不是一个 Long 值,则在计算时取最接近的整数值来计算。

      注意 DateAdd 返回值的格式由 Control Panel设置决定,而不是由传递到date 参数的格式决定。

  • 相关阅读:
    【JAVA笔记——道】JAVA对象销毁
    【JAVA笔记——道】并发编程CAS算法
    httpClientUtil的get请求
    python基础 day11 下 ORM介绍 sqlalchemy安装 sqlalchemy基本使用 多外键关联 多对多关系 表结构设计作业
    python基础 day11 上 数据库介绍 mysql 数据库安装使用 mysql管理 mysql 数据类型 常用mysql命令 事务 索引 python 操作mysql ORM sqlachemy学习
    Python基础 Day10 Gevent协程 SelectPollEpoll异步IO与事件驱动 Python连接Mysql数据库操作 RabbitMQ队列 RedisMemcached缓存 Paramiko SSH Twsited网络框架
    python基础 day9 进程、与线程区别 python GIL全局解释器锁 线程 进程
    python基础 day8 Socket语法及相关 SocketServer实现多并发
    python基础 day7 面向对象高级语法部分 异常处理 异常处理 Socket开发基础
    python基础 day6 面向对象的特性:封装、继承、多态 类、方法、
  • 原文地址:https://www.cnblogs.com/yuanyuan/p/1692415.html
Copyright © 2011-2022 走看看