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获取当前月的第一天和最后一天的小例子
Nov 18 Javascript
JS获取当前日期和时间的简单实例
Nov 19 Javascript
Jquery 获取对象的几种方式介绍
Jan 17 Javascript
js改变鼠标的形状和样式的方法
Mar 31 Javascript
uploadify多文件上传参数设置技巧
Nov 16 Javascript
jQuery动画效果实现图片无缝连续滚动
Jan 12 Javascript
jQuery轻松实现表格的隔行变色和点击行变色的实例代码
May 09 Javascript
JavaScript SHA1加密算法实现详细代码
Oct 06 Javascript
canvas实现动态小球重叠效果
Feb 06 Javascript
angular 基于ng-messages的表单验证实例
May 04 Javascript
AngularJs用户输入动态模板XSS攻击示例详解
Apr 21 Javascript
Javascript之datagrid查询详解
Sep 15 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
基于mysql的论坛(2)
2006/10/09 PHP
PHP查找与搜索数组元素方法总结
2015/06/12 PHP
php仿微信红包分配算法的实现方法
2016/05/13 PHP
php获取指定数量随机字符串的方法
2017/02/06 PHP
得到文本框选中的文字,动态插入文字的js代码
2007/03/07 Javascript
javascript 对表格的行和列都能加亮显示
2008/12/26 Javascript
jQuery ul标签下拉菜单演示代码
2010/12/11 Javascript
捕获键盘事件(且兼容各浏览器)
2013/07/03 Javascript
返回上一页并自动刷新的JavaScript代码
2014/02/19 Javascript
innerHTML在IE中报错解决方案
2014/12/15 Javascript
学习javascript面向对象 理解javascript对象
2016/01/04 Javascript
基于jQuery实现带动画效果超炫酷的弹出对话框(附源码下载)
2016/02/22 Javascript
如何用JS判断两个数字的大小
2016/07/21 Javascript
jQuery md5加密插件jQuery.md5.js用法示例
2018/08/24 jQuery
Angular 2使用路由自定义弹出组件toast操作示例
2019/05/10 Javascript
js微信分享接口调用详解
2019/07/23 Javascript
深入浅析JavaScript中的in关键字和for-in循环
2020/04/20 Javascript
[00:55]2015国际邀请赛中国区预选赛5月23日——28日约战上海
2015/05/25 DOTA
在Python中使用第三方模块的教程
2015/04/27 Python
python利用Guetzli批量压缩图片
2017/03/23 Python
python3利用Dlib19.7实现人脸68个特征点标定
2018/02/26 Python
对pandas中apply函数的用法详解
2018/04/10 Python
Pycharm配置远程调试的方法步骤
2018/12/17 Python
Python编程flask使用页面模版的方法
2018/12/28 Python
pyinstaller打包单个exe后无法执行错误的解决方法
2019/06/21 Python
python django中8000端口被占用的解决
2019/12/17 Python
Python中断多重循环的几种方式详解
2020/02/10 Python
使用Python和百度语音识别生成视频字幕的实现
2020/04/09 Python
巴西食品补充剂在线零售商:Músculos na Web
2017/08/07 全球购物
经济实惠的豪华家具:My-Furniture
2019/03/12 全球购物
体育纪念品、亲笔签名的体育收藏品:Steiner Sports
2020/07/31 全球购物
教育学专业毕业生的自我评价
2013/11/21 职场文书
会计专业大学生职业生涯规划范文
2014/01/11 职场文书
2014年秋季开学寄语
2014/08/02 职场文书
Java生成读取条形码和二维码的简单示例
2021/07/09 Java/Android
悬疑名作《朋友游戏》动画无字ED宣传片 新角色公开
2022/04/13 日漫