二,日历控件_shibaozhao的博客-程序员秘密

技术标签: date  border  textbox  html  日历  dropdown  

  1. /*------------------------------------------------------------------------
  2.   日期控件
  3.   function Cal_dropdown(edit,min,max)
  4.     弹出日历,可不给参数min和max,参数edit必须有   
  5.   function Cal_datevalid(edit,min,max)
  6.     检查edit中值是否为大于等于min,小于等于max的有效日期格式字符串。
  7.     是则返回 true,否则返回false
  8.     可不给参数min和max(字符串格式)
  9.     参数edit必须有,如果edit无,则必须是:edit为edit和img的父亲(如span、div)的第一个元素
  10.     
  11. */
  12. var Cal_popup = window.createPopup();
  13. var Cal_edit;
  14. var Cal_editdate = new Date();
  15. var Cal_maxdate;
  16. var Cal_mindate;
  17. function Cal_clearTime(thedate)
  18. {
  19.   thedate.setHours(0);
  20.   thedate.setMinutes(0);
  21.   thedate.setSeconds(0);
  22.   thedate.setMilliseconds(0);
  23. }
  24. var Cal_today = new Date();
  25. Cal_clearTime(Cal_today);
  26. //检查日期//
  27. //editctrl:日期控件输入框
  28. // false: 日期错误
  29. function ChkCZDate(editctrl)
  30. {
  31. if(editctrl.value=='')
  32. { alert('请输入日期!')
  33.   editctrl.select();
  34.   editctrl.focus();
  35.   return false;}
  36. if(!Cal_datevalid(editctrl,'1910-1-1','3000-1-1'))
  37. {
  38. alert('日期格式不正确,日期有效范围为1910年到3000年');
  39. editctrl.focus();
  40. return false;
  41. }
  42. else
  43.  return true;
  44. }
  45. function Cal_decDay(thedate,days)
  46. {
  47.   if (!days) days = 1;
  48.   thedate.setTime(thedate - days*24*60*60*1000);
  49. }
  50. function Cal_incMonth(year,month)
  51. {
  52. if (month == 11) {
  53.     month = 0;
  54.     year++;
  55.   } else month++;
  56.   Cal_writeHTML(year,month);
  57. }
  58. function Cal_decMonth(year,month)
  59. {
  60.  if (month == 0) {
  61.     month = 11;
  62.     year--;
  63.   } else month--;
  64.   Cal_writeHTML(year,month);
  65. }
  66. function Cal_decYear(year,month)
  67. {
  68.   Cal_writeHTML(year-1,month);
  69. }
  70. function Cal_incYear(year,month)
  71. {
  72.   Cal_writeHTML(year+1,month);
  73. }
  74. function Cal_writeHTML(theyear,themonth)
  75. {
  76.   var html=
  77.     '<div id="Cal_div1" style="width:231px;FONT-SIZE:9pt;background-color:#fffef5;border:black 1px solid">'+
  78.     '<TABLE style="border-bottom:black 1px solid;FONT-SIZE: 9pt;background-color:#08D74C;color:white;'+
  79.     'padding-top:2px;font-weight:bold;text-align:center" '+
  80.     'cellSpacing="0" cellPadding="0" width="100%" border="0">'+
  81.     '<TR><TD style="cursor:hand" align="left" width=24 οnmοuseοver="this.style.background=' +
  82.     "'#12AFF8';" + '"' + ' οnmοuseοut="this.style.background=' + "'#08D74C';" + '"' +
  83.     ' οnclick="parent.Cal_decYear(' + theyear + ',' + themonth + ');" '+
  84.     '><年</TD>'+
  85.     '<TD style="cursor:hand" align="left" width=24 οnmοuseοver="this.style.background=' +
  86.     "'#12AFF8';" + '"' + ' οnmοuseοut="this.style.background=' + "'#08D74C';" + '"' +
  87.     ' οnclick="parent.Cal_decMonth(' + theyear + ',' + themonth + ');" '+
  88.     '><月</TD>'+
  89.     '<TD align="center">';
  90.     
  91.   html += theyear + '年' + (themonth + 1) + '月</TD>'+
  92.     '<TD style="cursor:hand" align="right" width=24 οnmοuseοver="this.style.background=' +
  93.     "'#12AFF8';" + '"' + ' οnmοuseοut="this.style.background=' + "'#08D74C';" + '"' +
  94.     ' οnclick="parent.Cal_incMonth(' + theyear + ',' + themonth + ');" '+
  95.     '>月></TD>'+
  96.     '<TD style="cursor:hand" align="right" width=24 οnmοuseοver="this.style.background=' +
  97.     "'#12AFF8';" + '"' + ' οnmοuseοut="this.style.background=' + "'#08D74C';" + '"' +
  98.     ' οnclick="parent.Cal_incYear(' + theyear + ',' + themonth + ');" '+
  99.     '>年></TD>';
  100.     
  101.   html +=
  102.     '</TR></TABLE>'+
  103.     '<TABLE style="FONT-SIZE: 9pt;font-weight:bold;text-align:center;border-bottom:black 1px solid" '+
  104.     'cellSpacing="2" cellPadding="0" width="100%" border="0">'+
  105.     '<TR><TD>日</TD><TD>一</TD><TD>二</TD><TD>三</TD><TD>四</TD><TD>五</TD><TD>六</TD>'+
  106.     '</TR></table>'+
  107.     '<TABLE style="FONT-SIZE: 9pt;text-align:center;cursor:hand" cellSpacing="2" '+
  108.     'cellPadding="0" width="100%" border="0">';
  109.   var day1 = new Date(theyear,themonth,1);
  110.   if (day1.getDay()!=0)
  111.   Cal_decDay(day1,day1.getDay()); // 日历开始日
  112. for (var i=1;i<=6;i++) {
  113.     html += '<TR>';
  114. for (var j=1;j<=7;j++) {
  115.       html += '<TD';
  116.       if (day1.getTime()==Cal_today.getTime())
  117.         html += ' style="color:blue"';
  118.       else
  119.       if (day1.getTime()==Cal_editdate.getTime())
  120.         html += ' style="color:red"';
  121.       else
  122.       if (day1.getMonth() != themonth)
  123.         html += ' style="color:#aaaaaa"';
  124.       html += ' οnmοuseοver="this.style.background=' +
  125.               "'#12AFF8';" + '"'+
  126.               ' οnmοuseοut="this.style.background=' +
  127.               "'#fffef5';" + '"';
  128.       html += ' οnclick="parent.Cal_clickday('+day1.getTime() + ');"';
  129.       html +='>' + day1.getDate() + '</TD>';
  130.       Cal_decDay(day1,-1);
  131.     }
  132.     html += '</TR>';
  133.     if (day1.getMonth() != themonth) break;
  134.   }
  135.     
  136.   html +=
  137.     '</TABLE>'+
  138.     '<div style="border-top:black 1px solid;text-align:center;padding:2px">今天是 '+
  139.     '<span style="color:blue;cursor:hand;text-decoration:underline" οnclick="javascript:parent.Cal_clickday('+
  140.     Cal_today.getTime() + ');">'+
  141.     Cal_today.getFullYear() + '-' + (Cal_today.getMonth()+1) + '-' + Cal_today.getDate() +
  142.     '</span></div>'+
  143.     '</div>';
  144.   Cal_popup.document.body.innerHTML = html;
  145.   if (Cal_popup.isOpen) // 重新调整显示高度
  146.     Cal_popup.show(0, Cal_edit.offsetHeight, 231, Cal_popup.document.all("Cal_div1").offsetHeight,Cal_edit);
  147. }
  148. // 字符串转换为日期
  149. function Cal_strtodate(str)
  150. {
  151.   var date = Date.parse(str);
  152.  if (isNaN(date)) {
  153.     date = Date.parse(str.replace(/-/g,"/")); // 识别日期格式:YYYY-MM-DD
  154.     if (isNaN(date)) date = 0;
  155.   }
  156.   return(date);
  157. }
  158. //返回日期间相差的天数
  159. function Cal_DateDiff(Date1, Date2)
  160. {
  161.     return (Date2-Date1)/(24*60*60*1000);
  162. }
  163. //返回日期间相差的月数(最大误差小于一个月)
  164. function Cal_MonthDiff(DateA, DateB)
  165. {
  166.     Date1=new Date();
  167.     Date2=new Date();
  168.     Date1.setTime(DateA);
  169.     Date2.setTime(DateB);
  170.     months = (Date2.getFullYear() - Date1.getFullYear()) * 12;
  171.     addmonths = Date2.getMonth() - Date1.getMonth();
  172.     months = months + addmonths;
  173.     if(Date2.getDate() < Date1.getDate())
  174.         months--;
  175.     return months;
  176. }
  177. // 弹出日历,可不给参数min和max,参数edit必须有
  178. function Cal_dropdown(edit,min,max) {
  179. if (!edit) {
  180.     edit = window.event.srcElement.parentElement.children(0);
  181.     if ((!edit.type) || (edit.type.toLowerCase() != "text")) return;
  182.   }
  183.   Cal_edit = edit;
  184.   var date = Cal_strtodate(edit.value);
  185.   if (date == 0) date = Cal_today.getTime();
  186.   if (max) Cal_maxdate = Cal_strtodate(max);
  187.   else Cal_maxdate=0;
  188.   if (min) Cal_mindate = Cal_strtodate(min);
  189.   else Cal_mindate = 0;
  190.   Cal_editdate.setTime(date);
  191.   Cal_writeHTML(Cal_editdate.getFullYear(),Cal_editdate.getMonth());
  192.   Cal_popup.show(0, edit.offsetHeight, 231, 149,edit);
  193.   Cal_popup.show(0, edit.offsetHeight, 231, Cal_popup.document.all("Cal_div1").offsetHeight,edit);
  194. }
  195. // 点击日期
  196. function Cal_clickday(day,edit)
  197. {
  198.   if (Cal_maxdate != 0) day = Math.min(day,Cal_maxdate);
  199.   day = Math.max(day,Cal_mindate);
  200.   Cal_editdate.setTime(day);
  201.   var im;
  202.   var id;
  203.   if ((Cal_editdate.getMonth()+1)<10)
  204.   {
  205.    im = Cal_editdate.getMonth()+1;
  206.    im = '0' + im;
  207.   }
  208.   else
  209.    im = Cal_editdate.getMonth()+1;
  210.   if ((Cal_editdate.getDate())<10)
  211.    id = "0"+Cal_editdate.getDate();
  212.   else
  213.    id = Cal_editdate.getDate();
  214.   Cal_edit.value = Cal_editdate.getFullYear() + "-" + im + "-"
  215.                    + id;
  216.   Cal_popup.hide();
  217.   Cal_edit.fireEvent("onkeydown");
  218.   Cal_edit.focus();
  219. }
  220. function Cal_datevalid(edit,min,max)
  221. {
  222.   // 检查edit中值是否为大于等于min,小于等于max的有效日期格式字符串。
  223.   var date = Cal_strtodate(edit.value);
  224.   if (date == 0) return false;
  225.   if (max) {
  226.     var max = Cal_strtodate(max);
  227.     if ((max!=0)&&(date>max)) return false;
  228.   }
  229.    if (min) {
  230.     var min = Cal_strtodate(min);
  231.     if ((min!=0)&&(date<min)) return false;
  232.   }
  233.   date = new Date(date);
  234.   edit.value = date.getFullYear() + "-" + (date.getMonth()+1) +
  235.                "-" + date.getDate();
  236.   return true;
  237. }

<asp:textbox id="dtOpenTime" runat="server" Width="100px" visible="True" ></asp:textbox>
               <img src="img/calendar.gif" alt="打开日历" id="imgdtOpenTimeDate" style="CURSOR: hand;" οnclick="javascript:Cal_dropdown(dtOpenTime)" />

 
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/shibaozhao/article/details/3035769

智能推荐

java打包 MANIFEST.MF 文件内容详解_ZWPzym19790304的博客-程序员秘密

打开Java的JAR文件我们经常可以看到文件中包含着一个META-INF目录,这个目录下会有一些文件,其中必有一个MANIFEST.MF,这个文件描述了该Jar文件的很多信息,下面将详细介绍MANIFEST.MF文件的内容,先来看struts.jar中包含的MANIFEST.MF文件内容: Manifest-Version: 1.0 Created-By: Apache Ant 1.5.1 Ext

Django框架学习(四):Django 单元测试_看门猫的博客-程序员秘密

Django框架学习(四):Django 单元测试编写单元测试Django 框架自带了单元测试工具,利用该工具,我们可以方便地对单元进行错误检查,以提高项目的质量。编写单元测试在 Django 框架中,当新建一个应用时,会默认新建一个用于单元测试的 test.py 文件,我们的单元测试代码就写在 test.py 里。比如,在 view.py 里,我们写了一个相应用户登录操作的接口,如下:...

java飞机订票系统课程设计_基于Java+SSH的飞机票订票售票系统_weixin_39520775的博客-程序员秘密

需求分析基于Spring,Struts2,Hibernate,java实现一个飞机票订票售票系统, 能够管理会员信息、航班信息的管理、订单信息的管理、留言板的管理 、查看航班信息、在线购买机票、查看订单信息、在线留言的功能本站提供了其他类型的 在线订票系统源代码点击查看运行环境java, jdk1.8,tomcat8.5,mysql5.6,EclispseEE项目技术java, spring, s...

C语言的数组定义方式_c语言定义数组_张同学吧的博客-程序员秘密

C语言的数组定义方式c语言数组定义方式1、一维数组2、一维数组初始化3、一维数组元素的引用数组是存储数据的结构。由于单个变量所能存储的数据很有限,所以有了数组存储结构。不仅如此,数组和指针是相辅相成的,学习数组可以为学习指针打下基础。注意:同一数组中存储的数必须满足以下两个条件:这些数的类型必须相同。这些数在内存中必须是连续存储的。换句话说,数组是在内存中连续存储的具有相同类型的一组数据的集合。c语言数组定义方式1、一维数组通常一维数组的定义方法为:类型说明符 数组名[常量表达式];例

Xshell关闭后仍能后台运行程序的方法_xshell关闭后继续运行_球场书生的博客-程序员秘密

Xshell关闭后仍能后台运行程序的nohup方法nohup简介nohup简介

vc编译去掉vcruntime140.dll依赖_weixin_33785108的博客-程序员秘密

为什么80%的码农都做不了架构师?&gt;&gt;&gt; ...

随便推点

【模型复现】深度可分离卷积/逆残差结构模型——MobileNetV3快速复现_逆残差左右_极链AI云的博客-程序员秘密

MobileNetV3快速复现教程01 镜像详情镜像简介:这个模型的文章是由Andrew Howard团队发表在ICCV 2019 上的。文章综合了MobileNetV1的深度可分离卷积(depthwise separable convolutions)和MobileNetV2的具有线性瓶颈的逆残差结构(the inverted residual with linear bottleneck)。首先使用 MnasNet 进行粗略结构的搜索,然后使用强化学习从一组离散的选择中选择最优配

【深度学习】基于web端和C++的两种深度学习模型部署方式_风度78的博客-程序员秘密

深度学习Author:louwillMachine Learning Lab 本文对深度学习两种模型部署方式进行总结和梳理。一种是基于web服务端的模型部署,一种是基...

linux进程调度算法,关于嵌入式Linux系统实时进程调度算法系统详解_勃尼兄弟的博客-程序员秘密

1 嵌入式Linux系统分析1.1 嵌入式系统嵌入式系统(Embedded Systems)是以应用为中心,以计算机技术为基础,软件硬件可剪裁(可编程、可重构),适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其它设备的控制、监视或管理等功能。其中,嵌入式处理器是嵌入式系统中的...

SSH常见问题及其解决方法_东达是什么的博客-程序员秘密

SSH是Linux中的基础服务,作为IT从业者,基本上每天都要SSH连接到服务器中,从事各种各样的工作。作为这样基础的不能再基础的服务,一旦出现问题,影响也是巨大的,连不上就无法对服务器进行配置和更改,所有的事情也就无从谈起。在这篇文章中,我们会对SSH服务进行介绍,并对一些常见的问题进行分析,进而提供相应的解决方法。话不多说,我们进入主题。一、SSH服务简介SSH采用的是C/S架构,...

浅谈CTF中各种花式绕过的小trick_ctf sleep绕过_ph0ebus的博客-程序员秘密

在代码审计的时候,我们不难发现很多很多的函数需要我们bypass,这些知识点很多又很小,基本上是一眼就明白,但是下一次遇见又不太清晰,需要反反复复查找,这篇文章浅浅做个汇总,如有不足,欢迎补充。

jdk1.5新特性_jdk1.5的新特性_乘风御浪云帆之上的博客-程序员秘密

jdk1.5新特性先一睹为快1. 自动封箱、自动拆箱2. 泛型3. 增强for循环4. 静态导入5. 可变参数6. 枚举7. 注解8. 反射9. 动态代理10. 内省自动封箱拆箱包装类中自动封箱Integer i=5;//基本类型自动成为包装类自动拆箱if(i==5){...}//包装类自动成为基本类型