`
txf2004
  • 浏览: 7041017 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

javascript日期选择控件

阅读更多
  1. <html>
  2. <head>
  3. <title>calenderselect</title>
  4. <metahttp-equiv="Content-Type"content="text/html;charset=ISO-8859-1"/>
  5. <styletype='text/css'>
  6. body{
  7. font-family:"Lucidasansunicode",sans-serif;
  8. font-size:12px;
  9. margin:0;
  10. padding:0;
  11. height:100%;
  12. }
  13. #basis{
  14. display:inline;
  15. position:relative;
  16. }
  17. #calender{
  18. position:absolute;
  19. top:30px;
  20. left:0;
  21. width:220px;
  22. background-color:#fff;
  23. border:3pxsolid#ccc;
  24. padding:10px;
  25. z-index:10;
  26. }
  27. #control{
  28. text-align:center;
  29. margin:005px0;
  30. }
  31. #controlselect{
  32. font-family:"Lucidasansunicode",sans-serif;
  33. font-size:11px;
  34. margin:05px;
  35. vertical-align:middle;
  36. }
  37. #calender.controlPlus{
  38. padding:05px;
  39. text-decoration:none;
  40. color:#333;
  41. }
  42. #calendertable{
  43. empty-cells:show;
  44. width:100%;
  45. font-size:11px;
  46. table-layout:fixed;
  47. }
  48. #calender.weekdaystd{
  49. text-align:right;
  50. padding:1px5px1px1px;
  51. color:#333;
  52. }
  53. #calender.weektd{
  54. text-align:right;
  55. cursor:pointer;
  56. border:1pxsolid#fff;
  57. padding:1px4px1px0;
  58. }
  59. #calender.week.today{
  60. background-color:#ccf;
  61. border-color:#ccf;
  62. }
  63. #calender.week.holiday{
  64. font-weight:bold;
  65. }
  66. #calender.week.hoverEle{
  67. border-color:#666;
  68. background-color:#99f;
  69. color:#000;
  70. }
  71. </style>
  72. <scripttype="text/javascript">
  73. varallMonth=[31,28,31,30,31,30,31,31,30,31,30,31];
  74. varallNameOfWeekDays=["Mo","Di","Mi","Do","Fr","Sa","So"];
  75. varallNameOfMonths=["Januar","Februar","M?rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"];
  76. varnewnewDate=newDate();
  77. varyearZero=newDate.getFullYear();
  78. varmonthZero=newDate.getMonth();
  79. varday=newDate.getDate();
  80. varcurrentDay=0,currentDayZero=0;
  81. varmonth=monthZero,year=yearZero;
  82. varyearMin=2000,yearMax=2010;
  83. vartarget='';
  84. varhoverEle=false;
  85. functionsetTarget(e){
  86. if(e)returne.target;
  87. if(event)returnevent.srcElement;
  88. }
  89. functionnewElement(type,attrs,content,toNode){
  90. varele=document.createElement(type);
  91. if(attrs){
  92. for(vari=0;i<attrs.length;i++){
  93. eval('ele.'+attrs[i][0]+(attrs[i][2]?'=\u0027':'=')+attrs[i][1]+(attrs[i][2]?'\u0027':''));
  94. }
  95. }
  96. if(content)ele.appendChild(document.createTextNode(content));
  97. if(toNode)toNode.appendChild(ele);
  98. returnele;
  99. }
  100. functionsetMonth(ele){month=parseInt(ele.value);calender()}
  101. functionsetYear(ele){year=parseInt(ele.value);calender()}
  102. functionsetValue(ele){
  103. if(ele.parentNode.className=='week'&&ele.firstChild){
  104. vardayOut=ele.firstChild.nodeValue;
  105. if(dayOut<10)dayOut='0'+dayOut;
  106. varmonthmonthOut=month+1;
  107. if(monthOut<10)monthOut='0'+monthOut;
  108. target.value=dayOut+'.'+monthOut+'.'+year;
  109. removeCalender();
  110. }
  111. }
  112. functionremoveCalender(){
  113. varparentEle=document.getElementById("calender");
  114. while(parentEle.firstChild)parentEle.removeChild(parentEle.firstChild);
  115. document.getElementById('basis').parentNode.removeChild(document.getElementById('basis'));
  116. }
  117. functioncalender(){
  118. varparentEle=document.getElementById("calender");
  119. parentEle.onmouseover=function(e){
  120. varele=setTarget(e);
  121. if(ele.parentNode.className=='week'&&ele.firstChild&&ele!=hoverEle){
  122. if(hoverEle)hoverElehoverEle.className=hoverEle.className.replace(/hoverEle?/,'');
  123. hoverEle=ele;
  124. ele.className='hoverEle'+ele.className;
  125. }else{
  126. if(hoverEle){
  127. hoverElehoverEle.className=hoverEle.className.replace(/hoverEle?/,'');
  128. hoverEle=false;
  129. }
  130. }
  131. }
  132. while(parentEle.firstChild)parentEle.removeChild(parentEle.firstChild);
  133. functioncheck(){
  134. if(year%4==0&&(year%100!=0||year%400==0))allMonth[1]=29;
  135. elseallMonth[1]=28;
  136. }
  137. functionaddClass(name){if(!currentClass){currentClass=name}else{currentClass+=''+name}};
  138. if(month<0){month+=12;year-=1}
  139. if(month>11){month-=12;year+=1}
  140. if(year==yearMax-1)yearMax+=1;
  141. if(year==yearMin)yearMin-=1;
  142. check();
  143. varcontrol=newElement('p',[['id','control',1]],false,parentEle);
  144. varcontrolPlus=newElement('a',[['href','javascript:month--;calender()',1],['className','controlPlus',1]],'<',control);
  145. varselect=newElement('select',[['onchange',function(){setMonth(this)}]],false,control);
  146. for(vari=0;i<allNameOfMonths.length;i++)newElement('option',[['value',i,1]],allNameOfMonths[i],select);
  147. select.selectedIndex=month;
  148. select=newElement('select',[['onchange',function(){setYear(this)}]],false,control);
  149. for(vari=yearMin;i<yearMax;i++)newElement('option',[['value',i,1]],i,select);
  150. select.selectedIndex=year-yearMin;
  151. controlPlus=newElement('a',[['href','javascript:month++;calender()',1],['className','controlPlus',1]],'>',control);
  152. check();
  153. currentDay=1-newDate(year,month,1).getDay();
  154. if(currentDay>0)currentDay-=7;
  155. currentDaycurrentDayZero=currentDay;
  156. varnewMonth=newElement('table',[['cellSpacing',0,1],['onclick',function(e){setValue(setTarget(e))}]],false,parentEle);
  157. varnewMonthBody=newElement('tbody',false,false,newMonth);
  158. vartr=newElement('tr',[['className','head',1]],false,newMonthBody);
  159. tr=newElement('tr',[['className','weekdays',1]],false,newMonthBody);
  160. for(i=0;i<7;i++)td=newElement('td',false,allNameOfWeekDays[i],tr);
  161. tr=newElement('tr',[['className','week',1]],false,newMonthBody);
  162. for(i=0;i<allMonth[month]-currentDayZero;i++){
  163. varcurrentClass=false;
  164. currentDay++;
  165. if(currentDay==day&&month==monthZero&&year==yearZero)addClass('today');
  166. if(currentDay<=0){
  167. if(currentDayZero!=-7)td=newElement('td',false,false,tr);
  168. }
  169. else{
  170. if((currentDay-currentDayZero)%7==0)addClass('holiday');
  171. td=newElement('td',(!currentClass?false:[['className',currentClass,1]]),currentDay,tr);
  172. if((currentDay-currentDayZero)%7==0)tr=newElement('tr',[['className','week',1]],false,newMonthBody);
  173. }
  174. if(i==allMonth[month]-currentDayZero-1){
  175. i++;
  176. while(i%7!=0){i++;td=newElement('td',false,false,tr)};
  177. }
  178. }
  179. }
  180. functionshowCalender(ele){
  181. if(document.getElementById('basis')){removeCalender()}
  182. else{
  183. target=document.getElementById(ele.id.replace(/for_/,''));
  184. varbasis=ele.parentNode.insertBefore(document.createElement('div'),ele);
  185. basis.id='basis';
  186. newElement('div',[['id','calender',1]],false,basis);
  187. calender();
  188. }
  189. }
  190. </script>
  191. </head>
  192. <body>
  193. <div><inputtype='text'id='date1'/><inputtype='button'id='for_date1'value='date'onclick='showCalender(this)'/></div>
  194. <p>sometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometext</p>
  195. <div><inputtype='text'id='date2'/><inputtype='button'id='for_date2'value='date'onclick='showCalender(this)'/></div>
  196. <pid='output'></p>
  197. </body>
  198. </html>
分享到:
评论

相关推荐

    javascript 日期选择控件

    一些流行的JavaScript日期选择库包括 jQuery UI 的 Datepicker、Bootstrap 的 Datepicker、以及 Moment.js 配合 Pickadate.js 等。 1. **jQuery UI Datepicker**: 这是一个广泛使用的日期选择控件,支持多种语言,...

    JavaScript日期选择控件Kalendae源码.zip

    在网页中,我们经常需要与用户进行日期相关的交互,例如选择日期、设定日期范围等,这时JavaScript日期选择控件就显得尤为重要。Kalendae是一款强大的JavaScript库,专门用于创建日期选择功能,其源码的分析有助于...

    Javascript 日期选择控件 [My97DatePicker]

    总之,My97DatePicker 是一个强大且实用的JavaScript日期选择控件,它为开发者提供了丰富的功能和高度的定制性,是网页前端开发中的得力工具。无论是个人项目还是企业级应用,它都能满足多样化的日期输入需求,提升...

    选择日期控件(js封装类,javascript,选择日期,文本框选择日期,控件)

    选择日期控件(js封装类,javascript,选择日期,文本框选择日期,控件)

    JavaScript日期控件02(日期选择器)

    JavaScript日期控件是一种常见的网页交互元素,用于帮助用户在网页上方便地选择日期。这篇博客“JavaScript日期控件02(日期选择器)”可能是博主FantasyYong分享的一个关于自定义日期选择器的实现方法。日期控件在...

    漂亮JavaScript弹出选择日期控件

    "漂亮JavaScript弹出选择日期控件"就是这样一个实用工具,它能够提供美观且用户友好的日期选择界面。 首先,我们来看看"testdate.htm"这个文件,这通常是一个HTML页面,包含了日期控件的使用示例。在HTML中,我们...

    HTML日期选择控件

    - Bootstrap DateTimePicker:这是基于Bootstrap框架的日期和时间选择插件,不仅支持日期选择,还支持时间选择。使用时,需要引入Bootstrap、moment.js和datetimepicker插件的CSS和JS文件,然后通过附加类名或...

    JS日期选择插件

    JavaScript日期选择插件是网页开发中常用的一种工具,主要用于用户在网页上方便地选取日期,常见于表单输入、事件预约或日历功能等场景。本文将深入探讨基于JavaScript的日期选择控件及其核心概念。 首先,让我们...

    JavaScript日期控件01(日期选择器)

    JavaScript日期控件是一种常见的前端开发元素,用于在网页上提供日期选择功能,用户可以方便地选取日期,常用于表单填写、事件安排等场景。在这个案例中,我们关注的是一个名为"JavaScript日期控件01(日期选择器)...

    Asp日期控件

    总结来说,"Asp日期控件"中的"My97DatePicker"是一个强大且易用的JavaScript日期选择插件,适用于ASP开发环境。它提供了多种日期选择模式,支持自定义样式和功能扩展,是构建交互式Web应用时的一个理想选择。通过...

    JQ JS javascript 日期多选控件

    创建多选日期控件的关键在于设置允许选择多个日期的选项。在上述的Bootstrap Datepicker示例中,我们通过`multipleDates: true`参数实现了这一功能。用户可以选择并显示多个日期,这些日期会存储在输入框的值中,以...

    javascript 日期时间控件

    总之,JavaScript日期时间控件是一个复杂但实用的Web组件,它利用JavaScript的日期功能结合用户交互设计,为用户提供了一种在网页中选择日期和时间的便捷方式。通过分析"datescript.js",我们可以深入理解其背后的...

    JavaScript日期时间选择控件

    JavaScript日期时间选择控件是一种常见的前端开发工具,用于在网页上提供用户友好的日期和时间输入界面。在网页设计中,这种控件可以极大提升用户体验,因为它允许用户通过直观的日历视图和时间选择器来设定日期和...

    JavaScript经典日期控件

    JavaScript经典日期控件,如标题所述,是一种基于JavaScript编写的用于网页交互的日期选择组件,它使得用户在网页上能够方便地选取日期。这个控件的版本为My97DatePicker3.0.1,通常这类控件会提供丰富的功能和良好...

    基于Bootstrap的日期选择控件 可选择多种日期格式

    之前我们介绍过很多基于jQuery的日期选择控件和基于HTML5的日期选择控件,比如JavaScript日期选择控件Kalendae和HTML5/CSS3日历应用 华丽的日期选择器。这次要介绍的日期选择控件是基于Bootstrap风格的,可支持多种...

    日期控件 javascript日期控件

    JavaScript日期控件因其轻量级、灵活性和易于集成的特点,在Web开发中被广泛使用。本篇将深入探讨JavaScript日期控件,包括其基本原理、使用方法以及如何与jQuery库结合,同时也将提及压缩包中的相关资源。 一、...

    Javascript 日期控件DEMO

    总的来说,MY97 WdatePicker 是一个强大且灵活的JavaScript日期控件,它的广泛应用证明了其在网页开发中的实用性。通过深入学习和实践,开发者可以充分利用这个工具,为用户提供更优质的日期输入体验。在压缩包...

Global site tag (gtag.js) - Google Analytics