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 相关文章推荐
33种Javascript 表格排序控件收集
Dec 03 Javascript
js中document.getElementByid、document.all和document.layers区分介绍
Dec 08 Javascript
使用js实现的简单拖拽效果
Mar 18 Javascript
js中this用法实例详解
May 05 Javascript
jquery实现漫天雪花飞舞的圣诞祝福雪花效果代码分享
Aug 20 Javascript
浅析jQuery 遍历函数,javascript中的each遍历
May 25 Javascript
搭建Bootstrap离线文档的方法
Dec 02 Javascript
jQuery居中元素scrollleft计算方法示例
Jan 16 Javascript
JavaScript实现微信红包算法及问题解决方法
Apr 26 Javascript
JS实现将对象转化为数组的方法分析
Jan 21 Javascript
关于js陀螺仪的理解分析
Apr 11 Javascript
Vue form表单动态添加组件实战案例
Sep 02 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 获取百度的热词数据的代码
2012/02/18 PHP
Mysql中分页查询的两个解决方法比较
2013/05/02 PHP
探讨Hessian在PHP中的使用分析
2013/06/13 PHP
PHP登录验证码的实现与使用方法
2016/07/07 PHP
学习js所必须要知道的一些
2007/03/07 Javascript
基于Jquery制作的幻灯片图集效果打包下载
2011/02/12 Javascript
node.js chat程序如何实现Ajax long-polling长链接刷新模式
2012/03/13 Javascript
根据经纬度计算地球上两点之间的距离js实现代码
2013/03/05 Javascript
悬浮数字的实现案例
2014/02/19 Javascript
关于onchange事件在IE和FF下的表现及解决方法
2014/03/08 Javascript
详解js闭包
2014/09/02 Javascript
使用jQuery实现返回顶部
2015/01/26 Javascript
jquery 表单验证之通过 class验证表单不为空
2015/11/02 Javascript
JS简单测试循环运行时间的方法
2016/09/04 Javascript
jQuery实现CheckBox全选、全不选功能
2017/01/11 Javascript
捕获未处理的Promise错误方法
2017/10/13 Javascript
微信小程序实现的动态设置导航栏标题功能示例
2019/01/31 Javascript
微信小程序生成海报分享朋友圈的实现方法
2019/05/06 Javascript
js实现幻灯片轮播图
2020/08/14 Javascript
JS实现斐波那契数列的五种方式(小结)
2020/09/09 Javascript
python获取android设备的GPS信息脚本分享
2015/03/06 Python
Python正则表达式使用范例分享
2016/12/04 Python
Python使用Matplotlib实现Logos设计代码
2017/12/25 Python
Python实现随机生成手机号及正则验证手机号的方法
2018/04/25 Python
Python文件常见操作实例分析【读写、遍历】
2018/12/10 Python
Python3实现对列表按元组指定列进行排序的方法分析
2018/12/22 Python
用pycharm开发django项目示例代码
2019/06/13 Python
python 叠加等边三角形的绘制的实现
2019/08/14 Python
Python3.9.1中使用match方法详解
2021/02/08 Python
CSS3的column-fill属性对齐列内容高度的用法详解
2016/07/01 HTML / CSS
CSS3 animation ? steps 函数详解
2019/08/30 HTML / CSS
俄罗斯运动、健康和美容产品在线商店:Lactomin.ru
2020/07/23 全球购物
创先争优制度
2014/01/21 职场文书
建设工地安全标语
2014/06/07 职场文书
2014班子“三严三实”对照检查材料思想汇报
2014/09/18 职场文书
大学生就业意向书
2015/05/11 职场文书