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 相关文章推荐
编写兼容IE和FireFox的脚本
May 18 Javascript
jquery模拟LCD 时钟的html文件源代码
Jun 16 Javascript
使用jquery解析XML的方法
Sep 05 Javascript
javascript移动开发中touch触摸事件详解
Mar 18 Javascript
Vue组件通信的四种方式汇总
Feb 08 Javascript
JavaScript中 ES6变量的结构赋值
Jul 10 Javascript
React+Webpack快速上手指南(小结)
Aug 15 Javascript
vue.js 添加 fastclick的支持方法
Aug 28 Javascript
详解JSON.stringify()的5个秘密特性
May 26 Javascript
浅谈js中的attributes和Attribute的用法与区别
Jul 16 Javascript
React Native登录之指纹登录篇的示例代码
Nov 03 Javascript
VueCli生产环境打包部署跨域失败的解决
Nov 13 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
PHP4实际应用经验篇(7)
2006/10/09 PHP
PHP4与PHP5的时间格式问题
2008/02/17 PHP
PHP中多维数组的foreach遍历示例
2014/06/13 PHP
php生成动态验证码gif图片
2015/10/19 PHP
深入理解PHP 数组之count 函数
2016/06/13 PHP
php通过执行CutyCapt命令实现网页截图的方法
2016/09/30 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
php让json_encode不自动转义斜杠“/”的方法
2020/04/27 PHP
什么是JavaScript
2009/08/13 Javascript
跨域表单提交状态的变相判断代码
2009/11/12 Javascript
js的一些常用方法小结
2011/06/29 Javascript
Jquery+CSS3实现一款简洁大气带滑动效果的弹出层
2013/05/15 Javascript
文本框只能选择数据到文本框禁止手动输入
2013/11/22 Javascript
jQuery中siblings()方法用法实例
2015/01/08 Javascript
js中this的用法实例分析
2015/01/10 Javascript
删除javascript所创建子节点的方法
2015/05/21 Javascript
JS数组合并push与concat区别分析
2015/12/17 Javascript
javascript学习指南之回调问题
2016/04/23 Javascript
setTimeout学习小结
2017/02/08 Javascript
jQuery基本选择器和层次选择器学习使用
2017/02/27 Javascript
微信小程序开发之animation循环动画实现的让云朵飘效果
2017/07/14 Javascript
jQuery中ajax请求后台返回json数据并渲染HTML的方法
2018/08/08 jQuery
小程序分享模块超级详解(推荐)
2019/04/10 Javascript
JS实现商城秒杀倒计时功能(动态设置秒杀时间)
2019/12/12 Javascript
[01:10:57]Liquid vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python音频处理用到的操作的示例代码
2017/10/27 Python
python学生信息管理系统
2018/03/13 Python
详解Django之auth模块(用户认证)
2018/04/17 Python
对Python 网络设备巡检脚本的实例讲解
2018/04/22 Python
python3 pygame实现接小球游戏
2019/05/14 Python
世界上最大的冷却器制造商:Igloo Coolers
2019/07/23 全球购物
迪卡侬(Decathlon)加拿大官网:源自法国的运动专业超市
2020/11/22 全球购物
Swanson中国官网:美国斯旺森健康产品公司
2021/03/01 全球购物
XMLHttpRequest对象在IE和Firefox中创建方式有没有不同
2016/03/23 面试题
python ConfigParser库的使用及遇到的坑
2022/02/12 Python
彻底卸载VMware虚拟机的超详细步骤记录
2022/07/15 Servers