javascript 年月日联动实现核心代码


Posted in Javascript onDecember 21, 2009
var StartYear = 1980; 
var EndYear = 2500; function MonthAndDay() 
{ 
this.initDDL = function(objYear,objMonth,objDay,hidYear,hidMonth,hidDay) 
{ 
this.init(objYear,objMonth,objDay,hidYear,hidMonth,hidDay); 
this.SelectChange(objYear,objMonth,objDay,hidYear,hidMonth,hidDay); 
} 
this.init = function(objYear,objMonth,objDay,hidYear,hidMonth,hidDay) 
{ 
var year = document.getElementById(objYear); 
var month = document.getElementById(objMonth); 
var day = document.getElementById(objDay); 
var me=this; 
if(year.length == 1) 
{ 
year.options[0] = new Option("不限",""); 
for(var i = StartYear; i < EndYear; i++) 
{ 
year.options[year.length] = new Option(i,i); 
} 
} 
me.yearOptionsChange(document.all[objYear].value,objYear,objMonth,objDay); 
me.monthOptionsChange(document.all[objYear].value,document.getElementById(objMonth).value,objDay); 
} 
this.yearOptionsChange = function(selectValue,objYear,objMonth,objDay) 
{ 
var month = document.getElementById(objMonth); 
var day = document.getElementById(objDay); 
var me=this; 
month.length = 0; 
day.length = 0; 
month.options[0]=new Option("不限",''); 
day.options[0]=new Option("不限",''); 
if(selectValue == "") 
{ 
return ; 
} 
for(var i = 1; i < 13; i++) 
{ 
month.options[month.length] = new Option((i < 10 ? ("0" + i) : i),i); 
} 
me.monthOptionsChange(document.getElementById(objYear).value,document.getElementById(objMonth).value,objDay); 
} 
this.monthOptionsChange = function(yearSelectValue,monthSelectValue,objDay) 
{ 
var day = document.getElementById(objDay); 
var endDay; 
day.length = 0; 
day.options[0]=new Option("不限",''); 
if(monthSelectValue == "") 
{ 
return; 
} 
if((parseInt(yearSelectValue) % 400 == 0) || (parseInt(yearSelectValue) % 4 == 0 && parseInt(yearSelectValue) % 100 != 0)) 
{ 
if(parseInt(monthSelectValue) == "2") 
{ 
endDay = 29; 
} 
} 
else 
{ 
if(parseInt(monthSelectValue) == "2") 
{ 
endDay = 28; 
} 
} 
switch(parseInt(monthSelectValue)) 
{ 
case 1: 
case 3: 
case 5: 
case 7: 
case 8: 
case 10: 
case 12: 
endDay = 31; 
break; 
case 4: 
case 6: 
case 9: 
case 11: 
endDay = 30; 
break; 
} 
for(var i = 1; i <= endDay; i++) 
{ 
day.options[day.length] = new Option((i < 10 ? ("0" + i) : i),i); 
} 
} 
this.SelectChange = function(objYear,objMonth,objDay,hidYear,hidMonth,hidDay) 
{ 
var year = document.all[objYear]; 
var month = document.all[objMonth]; 
var day = document.all[objDay]; 
var me = this; 
year.onchange = function() 
{ 
me.yearOptionsChange(this.options[this.selectedIndex].value,objYear,objMonth,objDay); 
document.all[hidYear].value = this.options[this.selectedIndex].value; 
document.all[hidMonth].value = ""; 
document.all[hidDay].value = ""; 
} 
month.onchange = function() 
{ 
me.monthOptionsChange(document.all[hidYear].value,this.options[this.selectedIndex].value,objDay); 
document.all[hidMonth].value = this.options[this.selectedIndex].value; 
document.all[hidDay].value = ""; 
} 
day.onchange = function() 
{ 
document.all[hidDay].value = day.selectValue; 
} 
} 
}
Javascript 相关文章推荐
Javascript面向对象扩展库代码分享
Mar 27 Javascript
jQuery表单获取和失去焦点输入框提示效果的实例代码
Aug 01 Javascript
使用jquery实现的一个图片延迟加载插件(含图片延迟加载原理)
Jun 05 Javascript
jquery实现带缩略图的全屏图片画廊效果实例
Jun 25 Javascript
JavaScript代码实现禁止右键、禁选择、禁粘贴、禁shift、禁ctrl、禁alt
Nov 17 Javascript
浅谈jQuery中ajaxPrefilter的应用
Aug 01 Javascript
jQuery实现的导航下拉菜单效果示例
Sep 05 Javascript
浅谈jquery上下滑动的注意事项
Oct 13 Javascript
JS计算斐波拉切代码实例
Sep 12 Javascript
vue解决花括号数据绑定不成功的问题
Oct 30 Javascript
基于Web Audio API实现音频可视化效果
Jun 12 Javascript
使用Element的InfiniteScroll 无限滚动组件报错的解决
Jul 27 Javascript
Javascript和Ajax中文乱码吐血版解决方案
Dec 21 #Javascript
利用jQuery的$.event.fix函数统一浏览器event事件处理
Dec 21 #Javascript
jQuery 连续列表实现代码
Dec 21 #Javascript
jQuery解决iframe高度自适应代码
Dec 20 #Javascript
IE 上下滚动展示模仿Marquee机制
Dec 20 #Javascript
js控制div及网页相关属性的代码
Dec 19 #Javascript
JQuery Tips(4) 一些关于提高JQuery性能的Tips
Dec 19 #Javascript
You might like
php木马攻击防御之道
2008/03/24 PHP
PHP 获取客户端 IP 地址的方法实例代码
2018/11/11 PHP
phpQuery采集网页实现代码实例
2020/04/02 PHP
深入理解JavaScript系列(9) 根本没有“JSON对象”这回事!
2012/01/15 Javascript
Js中使用hasOwnProperty方法检索ajax响应对象的例子
2014/12/08 Javascript
javascript插件开发的一些感想和心得
2016/02/28 Javascript
浅析jquery数组删除指定元素的方法:grep()
2016/05/19 Javascript
JS 日期与时间戮相互转化的简单实例
2016/06/22 Javascript
原生js实现放大镜
2017/02/20 Javascript
Angular指令之restict匹配模式的详解
2017/07/27 Javascript
深入理解node.js http模块
2018/01/24 Javascript
JavaScript设计模式之享元模式实例详解
2019/01/17 Javascript
微信小程序自定义头部导航栏和导航栏背景图片 navigationStyle问题
2019/07/26 Javascript
javaScript代码飘红报错看不懂?读完这篇文章再试试
2020/08/19 Javascript
python实现根据主机名字获得所有ip地址的方法
2015/06/28 Python
遍历python字典几种方法总结(推荐)
2016/09/11 Python
Pyhton中单行和多行注释的使用方法及规范
2016/10/11 Python
总结python实现父类调用两种方法的不同
2017/01/15 Python
Python调用ctypes使用C函数printf的方法
2017/08/23 Python
Python实现的银行系统模拟程序完整案例
2019/04/12 Python
Django框架验证码用法实例分析
2019/05/10 Python
解决jupyter运行pyqt代码内核重启的问题
2020/04/16 Python
浅谈JupyterNotebook导出pdf解决中文的问题
2020/04/22 Python
Django模板标签{% for %}循环,获取制定条数据实例
2020/05/14 Python
CSS3中几个新增加的盒模型属性使用教程
2016/03/01 HTML / CSS
关于HTML5+ API plusready的兼容问题
2020/11/20 HTML / CSS
凯撒娱乐:Caesars Entertainment
2018/02/23 全球购物
如何通过 CSS 写出火焰效果
2021/03/24 HTML / CSS
《走一步再走一步》教学反思
2014/02/15 职场文书
讲文明懂礼貌演讲稿
2014/09/11 职场文书
三严三实学习心得体会
2014/10/13 职场文书
优秀党员申报材料
2014/12/18 职场文书
2016年大学生实习单位评语
2015/12/01 职场文书
漫画「你在春天醒来」第10卷封面公开
2022/03/21 日漫
《总之就是很可爱》新作短篇动画《总之就是很可爱~制服~》将于2022年夏天播出
2022/04/07 日漫
Java 通过手写分布式雪花SnowFlake生成ID方法详解
2022/04/07 Java/Android