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脚本
Dec 03 Javascript
基于jquery可配置循环左右滚动例子
Sep 09 Javascript
js 遍历json返回的map内容示例代码
Oct 29 Javascript
JS获取农历日期具体实例
Nov 14 Javascript
深入理解JavaScript编程中的同步与异步机制
Jun 24 Javascript
四种参数传递的形式——URL,超链接,js,form表单
Jul 24 Javascript
理解js回收机制通俗易懂版
Feb 29 Javascript
js判断主流浏览器类型和版本号的简单实现代码
May 26 Javascript
详解vue中使用express+fetch获取本地json文件
Oct 10 Javascript
深入分析element ScrollBar滚动组件源码
Jan 22 Javascript
vue模式history下在iis中配置流程
Apr 17 Javascript
layui使用表格渲染获取行数据的例子
Sep 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
ubuntu下配置nginx+php+mysql详解
2015/09/10 PHP
深入理解PHP内核(一)
2015/11/10 PHP
IE Firefox 使用自定义标签的区别
2009/10/15 Javascript
javascript正则表达式中参数g(全局)的作用
2010/11/11 Javascript
JQuery触发radio或checkbox的change事件
2012/12/18 Javascript
jQuery $.data()方法使用注意细节
2012/12/31 Javascript
js 获取元素下面所有li的两种方法
2014/04/14 Javascript
Fullpage.js固定导航栏-实现定位导航栏
2016/03/17 Javascript
js代码延迟一定时间后执行一个函数的实例
2017/02/15 Javascript
js CSS3实现卡牌旋转切换效果
2017/07/04 Javascript
禁止弹窗中蒙层底部页面跟随滚动的几种方法
2017/12/07 Javascript
使用 Node.js 开发资讯爬虫流程
2018/01/07 Javascript
Vue.js 2.x之组件的定义和注册图文详解
2018/06/19 Javascript
React 使用Hooks简化受控组件的状态绑定
2019/03/18 Javascript
JS实现的排列组合算法示例
2019/07/16 Javascript
vue el-tree 默认展开第一个节点的实现代码
2020/05/15 Javascript
[59:26]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第二局
2016/02/28 DOTA
[01:02:04]EG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
[01:06:19]DOTA2-DPC中国联赛定级赛 LBZS vs SAG BO3第二场 1月8日
2021/03/11 DOTA
python连接mysql数据库示例(做增删改操作)
2013/12/31 Python
python 一篇文章搞懂装饰器所有用法(建议收藏)
2019/08/23 Python
pyinstaller还原python代码过程图解
2020/01/08 Python
k-means 聚类算法与Python实现代码
2020/06/01 Python
Python3爬虫中关于Ajax分析方法的总结
2020/07/10 Python
奥斯汀独木舟和皮划艇:Austin Canoe & Kayak
2018/05/22 全球购物
数百万免费的图形资源:Freepik
2020/09/21 全球购物
大四毕业生学习总结的自我评价
2013/10/31 职场文书
医学检验专业大学生求职信
2013/11/18 职场文书
大学四年规划书范文
2013/12/27 职场文书
企业办公室岗位职责
2014/03/12 职场文书
初中班主任工作总结2015
2015/05/13 职场文书
业务员年终工作总结2015
2015/05/28 职场文书
暑假打工感想
2015/08/07 职场文书
检讨书怎么写?
2019/06/21 职场文书
探究Mysql模糊查询是否区分大小写
2021/06/11 MySQL
vue实现移动端div拖动效果
2022/03/03 Vue.js