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 学习笔记 防止发生命名冲突
Jul 30 Javascript
javascript 获取url参数和script标签中获取url参数函数代码
Jan 22 Javascript
Javascript中string转date示例代码
Nov 01 Javascript
让alert不出现弹窗的两种方法
May 18 Javascript
再JavaScript的jQuery库中编写动画效果的指南
Aug 13 Javascript
jQuery+Ajax实现限制查询间隔的方法
Jun 07 Javascript
谈谈jQuery之Deferred源码剖析
Dec 19 Javascript
js实现消息滚动效果
Jan 18 Javascript
jQuery遮罩层实例讲解
May 11 jQuery
react 应用多入口配置及实践总结
Oct 17 Javascript
vue实现pdf文档在线预览功能
Nov 26 Javascript
VUE中V-IF条件判断改变元素的样式操作
Aug 09 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/05/07 PHP
深入理解curl类,可用于模拟get,post和curl下载
2013/06/08 PHP
php preg_replace替换实例讲解
2013/11/04 PHP
Drupal读取Excel并导入数据库实例
2014/03/02 PHP
php求两个目录的相对路径示例(php获取相对路径)
2014/03/27 PHP
php基本函数汇总
2015/07/09 PHP
PHP7中I/O模型内核剖析详解
2019/04/14 PHP
Opacity.js
2007/01/22 Javascript
JavaScript判断窗口是否最小化的代码(跨浏览器)
2010/08/01 Javascript
jQuery实现切换页面布局使用介绍
2011/10/09 Javascript
ExtJS4如何自动生成控制grid的列显示、隐藏的checkbox
2014/05/02 Javascript
PHP使用方法重载实现动态创建属性的get和set方法
2014/11/17 Javascript
js图片翻书效果代码分享
2015/08/20 Javascript
使用jquery插件qrcode生成二维码
2015/10/22 Javascript
Node.js编写组件的三种实现方式
2016/02/25 Javascript
Bootstrap中的fileinput 多图片上传及编辑功能
2016/09/05 Javascript
Javascrip实现文字跳动特效
2016/11/27 Javascript
JS Html转义和反转义(html编码和解码)的实现与使用方法总结
2020/03/10 Javascript
基于vuex实现购物车功能
2021/01/10 Vue.js
对TensorFlow中的variables_to_restore函数详解
2018/07/30 Python
python的依赖管理的实现
2019/05/14 Python
Django中自定义admin Xadmin的实现代码
2019/08/09 Python
python使用opencv在Windows下调用摄像头实现解析
2019/11/26 Python
python输出pdf文档的实例
2020/02/13 Python
Python关于__name__属性的含义和作用详解
2020/02/19 Python
前端制作动画的几种方式(css3,js)
2016/12/12 HTML / CSS
详解Css3新特性应用之过渡与动画
2017/01/10 HTML / CSS
CSS实现的一闪而过的图片闪光效果
2014/04/23 HTML / CSS
美国彩妆品牌:Coastal Scents
2017/04/01 全球购物
字符串str除首尾字符外的其他字符按升序排列
2013/03/08 面试题
财务人员个人求职信范文
2013/12/04 职场文书
五好家庭申报材料
2014/12/20 职场文书
公证书
2019/04/17 职场文书
k-means & DBSCAN 总结
2021/04/27 Python
Javascript使用integrity属性进行安全验证
2021/11/07 Javascript
DE1103使用报告
2022/04/05 无线电