宜昌本地软件开发与弱电工程服务商
项目咨询 · 快速响应

[JS]js得现年月日联动

2016-10-13 00:16:48 点击量:109 标签: 收藏本文

[JS]js得现年月日联动

  1. var StartYear = 1980; 
  2. var EndYear = 2500; 
  3.  
  4. function MonthAndDay() 
  5. { 
  6. this.initDDL = function(objYear,objMonth,objDay,hidYear,hidMonth,hidDay) 
  7. { 
  8. this.init(objYear,objMonth,objDay,hidYear,hidMonth,hidDay); 
  9. this.SelectChange(objYear,objMonth,objDay,hidYear,hidMonth,hidDay); 
  10. } 
  11.  
  12. this.init = function(objYear,objMonth,objDay,hidYear,hidMonth,hidDay) 
  13. { 
  14. var year = document.getElementById(objYear); 
  15. var month = document.getElementById(objMonth); 
  16. var day = document.getElementById(objDay); 
  17. var me=this; 
  18.  
  19. if(year.length == 1) 
  20. { 
  21. year.options[0] = new Option("不限",""); 
  22. for(var i = StartYear; i < EndYear; i++) 
  23. { 
  24. year.options[year.length] = new Option(i,i); 
  25. } 
  26. } 
  27. me.yearOptionsChange(document.all[objYear].value,objYear,objMonth,objDay); 
  28. me.monthOptionsChange(document.all[objYear].value,document.getElementById(objMonth).value,objDay); 
  29. } 
  30.  
  31. this.yearOptionsChange = function(selectValue,objYear,objMonth,objDay) 
  32. { 
  33. var month = document.getElementById(objMonth); 
  34. var day = document.getElementById(objDay); 
  35. var me=this; 
  36. month.length = 0; 
  37. day.length = 0; 
  38. month.options[0]=new Option("不限",''); 
  39. day.options[0]=new Option("不限",''); 
  40.  
  41. if(selectValue == "") 
  42. { 
  43. return ; 
  44. } 
  45.  
  46. for(var i = 1; i < 13; i++) 
  47. { 
  48. month.options[month.length] = new Option((i < 10 ? ("0" + i) : i),i); 
  49. } 
  50. me.monthOptionsChange(document.getElementById(objYear).value,document.getElementById(objMonth).value,objDay); 
  51. } 
  52.  
  53. this.monthOptionsChange = function(yearSelectValue,monthSelectValue,objDay) 
  54. { 
  55. var day = document.getElementById(objDay); 
  56. var endDay; 
  57. day.length = 0; 
  58.  
  59. day.options[0]=new Option("不限",''); 
  60.  
  61. if(monthSelectValue == "") 
  62. { 
  63. return; 
  64. } 
  65. if((parseInt(yearSelectValue) % 400 == 0) || (parseInt(yearSelectValue) % 4 == 0 && parseInt(yearSelectValue) % 100 != 0)) 
  66. { 
  67. if(parseInt(monthSelectValue) == "2") 
  68. { 
  69. endDay = 29; 
  70. } 
  71. } 
  72. else 
  73. { 
  74. if(parseInt(monthSelectValue) == "2") 
  75. { 
  76. endDay = 28; 
  77. } 
  78. } 
  79. switch(parseInt(monthSelectValue)) 
  80. { 
  81. case 1: 
  82. case 3: 
  83. case 5: 
  84. case 7: 
  85. case 8: 
  86. case 10: 
  87. case 12: 
  88. endDay = 31; 
  89. break; 
  90. case 4: 
  91. case 6: 
  92. case 9: 
  93. case 11: 
  94. endDay = 30; 
  95. break; 
  96. } 
  97.  
  98. for(var i = 1; i <= endDay; i++) 
  99. { 
  100. day.options[day.length] = new Option((i < 10 ? ("0" + i) : i),i); 
  101. } 
  102. } 
  103.  
  104. this.SelectChange = function(objYear,objMonth,objDay,hidYear,hidMonth,hidDay) 
  105. { 
  106. var year = document.all[objYear]; 
  107. var month = document.all[objMonth]; 
  108. var day = document.all[objDay]; 
  109. var me = this; 
  110.  
  111. year.onchange = function() 
  112. { 
  113. me.yearOptionsChange(this.options[this.selectedIndex].value,objYear,objMonth,objDay); 
  114. document.all[hidYear].value = this.options[this.selectedIndex].value; 
  115. document.all[hidMonth].value = ""; 
  116. document.all[hidDay].value = ""; 
  117. } 
  118.  
  119. month.onchange = function() 
  120. { 
  121. me.monthOptionsChange(document.all[hidYear].value,this.options[this.selectedIndex].value,objDay); 
  122. document.all[hidMonth].value = this.options[this.selectedIndex].value; 
  123. document.all[hidDay].value = ""; 
  124. } 
  125.  
  126. day.onchange = function() 
  127. { 
  128. document.all[hidDay].value = day.selectValue; 
  129. } 
  130. } 
  131. }