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 相关文章推荐
asp(javascript)全角半角转换代码 dbc2sbc
Aug 06 Javascript
javascript中关于break,continue的特殊用法与介绍
May 24 Javascript
node.js中的fs.realpathSync方法使用说明
Dec 16 Javascript
js实现兼容性好的微软官网导航下拉菜单效果
Sep 07 Javascript
详解AngularJS控制器的使用
Mar 09 Javascript
JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法
Apr 18 Javascript
使用JavaScript实现ajax的实例代码
May 11 Javascript
原生js实现tab选项卡切换
Mar 23 Javascript
javascript表达式和运算符详解
Feb 07 Javascript
vue2.0 兄弟组件(平级)通讯的实现代码
Jan 15 Javascript
如何以Angular的姿势打开Font-Awesome详解
Apr 22 Javascript
vue iview的菜单组件Mune 点击不高亮的解决方案
Nov 01 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防注
2007/01/15 PHP
php 将字符串按大写字母分隔成字符串数组
2010/04/30 PHP
php实现统计邮件大小的方法
2013/08/06 PHP
PHP远程连接oracle数据库操作实现方法图文详解
2019/04/11 PHP
php版本CKEditor 4和CKFinder安装及配置方法图文教程
2019/06/05 PHP
TP5框架实现一次选择多张图片并预览的方法示例
2020/04/04 PHP
prototype Element学习笔记(篇二)
2008/10/26 Javascript
Javascript笔记一 js以及json基础使用说明
2010/05/22 Javascript
一个基于jquery的文本框记数器
2012/09/19 Javascript
JQuery入门——事件切换之hover()方法应用介绍
2013/02/05 Javascript
JavaScript函数的调用以及参数传递
2015/10/21 Javascript
JavaScript中的继承之类继承
2016/05/01 Javascript
JS简单去除数组中重复项的方法
2016/09/13 Javascript
js实现html table 行,列锁定的简单实例
2016/10/13 Javascript
BootStrap Table对前台页面表格的支持实例讲解
2016/12/22 Javascript
详解浏览器渲染页面过程
2017/02/09 Javascript
vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
2017/03/06 Javascript
jQuery实现百度登录框的动态切换效果
2017/04/21 jQuery
Javascript实现页面滚动时导航智能定位
2017/05/06 Javascript
微信小程序实现打开内置地图功能【附源码下载】
2017/12/07 Javascript
微信小程序实现折叠面板
2018/01/31 Javascript
jQuery事件blur()方法的使用实例讲解
2019/03/30 jQuery
vue实现简单加法计算器
2020/10/22 Javascript
Python深入学习之对象的属性
2014/08/31 Python
Python深入06——python的内存管理详解
2016/12/07 Python
Python实现的人工神经网络算法示例【基于反向传播算法】
2017/11/11 Python
使用python将时间转换为指定的格式方法
2018/11/12 Python
解决pycharm最左侧Tool Buttons显示不全的问题
2019/12/17 Python
Python使用itcaht库实现微信自动收发消息功能
2020/07/13 Python
python字符串拼接+和join的区别详解
2020/12/03 Python
荷兰网上药店:Drogisterij.net
2019/09/03 全球购物
美国儿童服装、家具和玩具精品店:Maisonette
2019/11/24 全球购物
.NET面试10题
2014/02/24 面试题
关于Assembly命名空间的三个面试题
2015/07/23 面试题
商场促销活动方案
2014/02/08 职场文书
Logback 使用TurboFilter实现日志级别等内容的动态修改操作
2021/08/30 Java/Android