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 相关文章推荐
filters.revealTrans.Transition使用方法小结
Aug 19 Javascript
浅析Cookie中的Path与domain
Dec 18 Javascript
JavaScript设计模式之单件模式介绍
Dec 28 Javascript
Vuejs第十一篇组件之slot内容分发实例详解
Sep 09 Javascript
基于SpringMVC+Bootstrap+DataTables实现表格服务端分页、模糊查询
Oct 30 Javascript
Vue.js实现文章评论和回复评论功能
May 30 Javascript
详解JavaScript调用栈、尾递归和手动优化
Jun 03 Javascript
详解npm 配置项registry修改为淘宝镜像
Sep 07 Javascript
JS二级菜单不同实现方法分析【4种方法】
Dec 21 Javascript
JavaScript学习笔记之DOM操作实例分析
Jan 08 Javascript
Javascript中的this,bind和that使用实例
Dec 05 Javascript
JavaScript本地储存:localStorage、sessionStorage、cookie的使用
Oct 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
追求程序速度,而不是编程的速度
2008/04/23 PHP
PHP判断是否有Get参数的方法
2014/05/05 PHP
使用PHP和HTML5 FormData实现无刷新文件上传教程
2014/09/06 PHP
9段PHP实用功能的代码推荐
2014/10/14 PHP
详解php设置session(过期、失效、有效期)
2015/11/12 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
Laravel框架执行原生SQL语句及使用paginate分页的方法
2018/08/17 PHP
JSQL 批量图片切换的实现代码
2010/05/05 Javascript
function foo的原型与prototype属性解惑
2010/11/19 Javascript
浅谈JavaScript中指针和地址
2015/07/26 Javascript
详解Bootstrap glyphicons字体图标
2016/01/04 Javascript
Jquery实现的简单轮播效果【附实例】
2016/04/19 Javascript
JS常见创建类的方法小结【工厂方式,构造器方式,原型方式,联合方式等】
2017/04/01 Javascript
boostrap模态框二次弹出清空原有内容的方法
2018/08/10 Javascript
微信小程序中遇到的iOS兼容性问题小结
2018/11/14 Javascript
在NPM发布自己造的轮子的方法步骤
2019/03/09 Javascript
在 Vue 应用中使用 Netlify 表单功能的方法详解
2019/06/03 Javascript
vue@cli3项目模板怎么使用public目录下的静态文件
2020/07/07 Javascript
vue 项目引入echarts 添加点击事件操作
2020/09/09 Javascript
Vue开发中常见的套路和技巧总结
2020/11/24 Vue.js
Python爬虫天气预报实例详解(小白入门)
2018/01/24 Python
python Opencv将图片转为字符画
2021/02/19 Python
TensorFlow 模型载入方法汇总(小结)
2018/06/19 Python
HTML5新增的表单元素和属性实例解析
2014/07/07 HTML / CSS
Vans荷兰官方网站:美国南加州的原创极限运动潮牌
2018/01/23 全球购物
俄罗斯达美乐比萨外送服务:Domino’s Pizza
2020/12/18 全球购物
一道Delphi上机题
2012/06/04 面试题
地理教师岗位职责
2014/03/16 职场文书
《金色的脚印》教后反思
2014/04/23 职场文书
2014年纪检监察工作总结
2014/11/11 职场文书
英语导游词
2015/02/13 职场文书
宣传稿格式范文
2015/07/23 职场文书
校长新学期寄语2016
2015/12/04 职场文书
2016国庆节67周年寄语
2015/12/07 职场文书
python munch库的使用解析
2021/05/25 Python
mysql 联合索引生效的条件及索引失效的条件
2021/11/20 MySQL