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 相关文章推荐
获取焦点时,利用js定时器设定时间执行动作
Apr 02 Javascript
JavaScript中的几个关键概念的理解-原型链的构建
May 12 Javascript
JavaScript对象创建及继承原理实例解剖
Feb 28 Javascript
浅析document.createDocumentFragment()与js效率
Jul 08 Javascript
javascript:FF/Chrome与IE动态加载元素的区别说明
Jan 26 Javascript
JavaScript中的splice()方法使用详解
Jun 09 Javascript
JavaScript实现选择框按比例拖拉缩放的方法
Aug 04 Javascript
关于iframe跨域POST提交的方法示例
Jan 15 Javascript
全面总结Javascript对数组对象的各种操作
Jan 22 Javascript
vue.js实现单选框、复选框和下拉框示例
Jul 18 Javascript
ES6 对象的新功能与解构赋值介绍
Feb 05 Javascript
webpack 动态批量加载文件的实现方法
Mar 19 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实现文件上传下载实例
2016/10/18 PHP
PHP 范围解析操作符(::)用法分析【访问静态成员和类常量】
2020/04/14 PHP
jquery animate实现鼠标放上去显示离开隐藏效果
2013/07/21 Javascript
js获取url参数代码实例分享(JS操作URL)
2013/12/13 Javascript
javascript实现的简单计时器
2015/07/19 Javascript
ajax在兼容模式下失效的快速解决方法
2016/03/22 Javascript
Javascript中的对象和原型(二)
2016/08/12 Javascript
基于构造函数的五种继承方法小结
2017/07/27 Javascript
webpack实现热加载自动刷新的方法
2017/07/30 Javascript
vue2.5.2使用http请求获取静态json数据的实例代码
2018/02/27 Javascript
Vue中的vue-resource示例详解
2018/11/02 Javascript
详解nuxt路由鉴权(express模板)
2018/11/21 Javascript
JavaScript canvas仿代码流瀑布
2020/02/10 Javascript
JS实现烟花爆炸效果
2020/03/10 Javascript
three.js欧拉角和四元数的使用方法
2020/07/26 Javascript
如何HttpServletRequest文件对象并储存
2020/08/14 Javascript
[03:04]2018年国际邀请赛典藏宝瓶&莱恩声望物品展示 片尾有彩蛋
2018/06/04 DOTA
对Python3中的input函数详解
2018/04/22 Python
对pandas中to_dict的用法详解
2018/06/05 Python
pip install urllib2不能安装的解决方法
2018/06/12 Python
python中退出多层循环的方法
2018/11/27 Python
selenium+python自动化测试之页面元素定位
2019/01/23 Python
Python实现统计英文文章词频的方法分析
2019/01/28 Python
PyQt5使用QTimer实现电子时钟
2019/07/29 Python
Python实现图片批量加入水印代码实例
2019/11/30 Python
python3 xpath和requests应用详解
2020/03/06 Python
如何打包Python Web项目实现免安装一键启动的方法
2020/05/21 Python
在html5的Canvas上绘制椭圆的几种方法总结
2013/01/07 HTML / CSS
美国当红的名品折扣网:Gilt Groupe
2016/08/15 全球购物
Snapfish英国:在线照片打印和个性化照片礼品
2017/01/13 全球购物
环境科学专业研究生求职信
2013/10/02 职场文书
创新型城市实施方案
2014/03/06 职场文书
党员先进性教育整改措施
2014/09/18 职场文书
学生抄作业检讨书(2篇)
2014/10/17 职场文书
五一放假通知怎么写
2015/08/18 职场文书
幼师必备:幼儿园期末教师评语50条
2019/11/01 职场文书