首页 > 语言 > JavaScript > 正文

JavaScript用select实现日期控件

2024-05-06 16:23:19
字体:
来源:转载
供稿:网友

这篇文章主要介绍了JavaScript用select实现日期控件的相关资料,需要的朋友可以参考下

代码很简单,这里就不多废话了,直接给大家源码吧

 

 
  1. <!doctype html> 
  2. <html> 
  3. <head> 
  4. <title>年月日</title> 
  5. </head> 
  6. <body onLoad="init()"
  7. <select id="year" onChange="swap_day()"></select>年 
  8. <select id="month" onChange="swap_day()"></select>月 
  9. <select id="day"></select>日 
  10. </body> 
  11. <script> 
  12. var month_big = new Array("1","3","5","7","8","10","12"); //包含所有大月的数组 
  13. var month_small = new Array("4","6","9","11"); //包含所有小月的数组  
  14.  
  15. //页面加载时调用的初始化select控件的option的函数 
  16. function init() 
  17. var select_year = document.getElementById("year"); //获取id为"year"的下拉列表框 
  18. var select_month = document.getElementById("month"); //获取id为"month"的下拉列表框 
  19. var select_day = document.getElementById("day"); //获取id为"day"的下拉列表框 
  20.  
  21. //将年份选项初始化,从1980到2000 
  22. for(var i = 1980; i <= 2000; i++) 
  23. select_year_option = new Option(i, i); 
  24. select_year.options.add(select_year_option); 
  25.  
  26. //将月份选项初始化,从1到12 
  27. for(var i = 1; i <= 12; i++) 
  28. select_month_option = new Option(i, i); 
  29. select_month.options.add(select_month_option); 
  30.  
  31. //调用swap_day函数初始化日期  
  32. swap_day(); 
  33. //判断数组array中是否包含元素obj的函数,包含则返回true,不包含则返回false 
  34. function array_contain(array, obj) 
  35. for (var i = 0; i < array.length; i++) 
  36. if (array[i] === obj) 
  37. return true
  38. return false
  39.  
  40. //根据年份和月份调整日期的函数 
  41. function swap_day() 
  42. var select_year = document.getElementById("year"); //获取id为"year"的下拉列表框 
  43. var select_month = document.getElementById("month"); //获取id为"month"的下拉列表框 
  44. var select_day = document.getElementById("day"); //获取id为"day"的下拉列表框 
  45.  
  46. select_day.options.length = 0; //在调整前先清空日期选项里面的原有选项 
  47. var month = select_month.options[select_month.selectedIndex].value; //获取被选中的月份month 
  48.  
  49. //如果month被包含在month_big数组中,即被选中月份是大月,则将日期选项初始化为31天 
  50. if(array_contain(month_big, month)) 
  51. for(var i = 1; i <= 31; i++) 
  52. select_day_option = new Option(i, i); 
  53. select_day.options.add(select_day_option); 
  54.  
  55. //如果month被包含在month_small数组中,即被选中月份是小月,则将日期选项初始化为30天 
  56. else if(array_contain(month_small, month)) 
  57. for(var i = 1; i <= 30; i++) 
  58. select_day_option = new Option(i, i); 
  59. select_day.options.add(select_day_option); 
  60.  
  61. //如果month为2,即被选中的月份是2月,则调用initFeb()函数来初始化日期选项 
  62. else 
  63. initFeb();  
  64. //判断年份year是否为闰年,是闰年则返回true,否则返回false 
  65. function isLeapYear(year) 
  66. var a = year % 4; 
  67. var b = year % 100; 
  68. var c = year % 400; 
  69. if( ( (a == 0) && (b != 0) ) || (c == 0) ) 
  70. return true
  71. return false
  72.  
  73. //根据年份是否闰年来初始化二月的日期选项 
  74. function initFeb() 
  75. var select_year = document.getElementById("year"); //获取id为"year"的下拉列表框 
  76. var select_day = document.getElementById("day"); //获取id为"day"的下拉列表框 
  77. var year = parseInt(select_year.options[select_year.selectedIndex].value); //获取被选中的年份并转换成Int 
  78.  
  79. //如果是闰年,则将日期选项初始化为29天 
  80. if(isLeapYear(year)) 
  81. for(var i = 1; i <= 29; i++) 
  82. select_day_option = new Option(i, i); 
  83. select_day.options.add(select_day_option); 
  84.  
  85. //如果不是闰年,则将日期选项初始化为28天 
  86. else 
  87. for(var i = 1; i <= 28; i++) 
  88. select_day_option = new Option(i, i); 
  89. select_day.options.add(select_day_option); 
  90. </script> 
  91. </html> 

以上所述就是本文的全部内容了,希望大家能够喜欢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选