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 相关文章推荐
web 页面分页打印的实现
Jun 22 Javascript
jQuery的实现原理的模拟代码 -4 重要的扩展函数 extend
Aug 03 Javascript
IE6,IE7,IE8下使用Javascript记录光标选中范围(已补全)
Aug 28 Javascript
js判断客户端是iOS还是Android等移动终端的方法
Dec 11 Javascript
javascript数字时钟示例分享
Apr 23 Javascript
JQuery菜单效果的两个实例讲解(3)
Sep 17 Javascript
值得分享和收藏的Bootstrap学习教程
May 12 Javascript
IScroll5实现下拉刷新上拉加载的功能实例
Aug 11 Javascript
vue实现全选和反选功能
Aug 31 Javascript
nginx部署访问vue-cli搭建的项目的方法
Feb 12 Javascript
解决vue数组中对象属性变化页面不渲染问题
Aug 09 Javascript
初学vue出现空格警告的原因及其解决方案
Oct 31 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+jquery编码方面的一些心得(utf-8 gb2312)
2010/10/12 PHP
php addslashes 利用递归实现使用反斜线引用字符串
2013/08/05 PHP
PHP同时连接多个mysql数据库示例代码
2014/03/17 PHP
Laravel+jQuery实现AJAX分页效果
2016/09/14 PHP
javascript 硬盘序列号+其它硬件信息
2008/12/23 Javascript
JS控制显示隐藏兼容问题(IE6、IE7、IE8)
2010/04/01 Javascript
JS模板实现方法
2013/04/03 Javascript
jquery获取对象的方法足以应付常见的各种类型的对象
2014/05/14 Javascript
JavaScript定时显示广告代码分享
2015/03/02 Javascript
jquery+css实现的红色线条横向二级菜单效果
2015/08/22 Javascript
微信小程序 教程之事件
2016/10/18 Javascript
自定义require函数让浏览器按需加载Js文件
2016/11/24 Javascript
BOM之navigator对象和用户代理检测
2017/02/10 Javascript
bootstrap折叠调用collapse()后data-parent不生效的快速解决办法
2017/02/23 Javascript
微信小程序获取用户openId的实现方法
2017/05/23 Javascript
angular.js中解决跨域问题的三种方式
2017/07/12 Javascript
详解Angular如何正确的操作DOM
2018/07/06 Javascript
webpack 3.X学习之多页面打包的方法
2018/09/04 Javascript
如何优雅地在vue中添加权限控制示例详解
2019/03/07 Javascript
编写Python的web框架中的Model的教程
2015/04/29 Python
谈谈Python进行验证码识别的一些想法
2016/01/25 Python
Python3多线程爬虫实例讲解代码
2018/01/05 Python
微信跳一跳自动运行python脚本
2018/01/08 Python
Python实现爬虫抓取与读写、追加到excel文件操作示例
2018/06/27 Python
PyQt5实现QLineEdit添加clicked信号的方法
2019/06/25 Python
python3.x提取中文的正则表达式示例代码
2019/07/23 Python
python实现数据清洗(缺失值与异常值处理)
2019/12/02 Python
Pytorch保存模型用于测试和用于继续训练的区别详解
2020/01/10 Python
Hotels.com爱尔兰:全球酒店预订
2017/02/24 全球购物
建筑施工实习自我鉴定
2013/09/19 职场文书
青年教师培训方案
2014/02/06 职场文书
团日活动总结范文
2014/04/25 职场文书
民政局标准版离婚协议书
2014/12/01 职场文书
会计工作总结范文2014
2014/12/23 职场文书
青年岗位能手事迹材料
2014/12/23 职场文书
2015年重阳节主持词
2015/07/04 职场文书