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禁止document element对象选中文本实现代码
Mar 21 Javascript
iframe里使用JavaScript控制主页转向的方法
Apr 03 Javascript
JS特效实现图片自动播放并可控的效果
Jul 31 Javascript
AngularJS的ng-click传参的方法
Jun 19 Javascript
node通过express搭建自己的服务器
Sep 30 Javascript
探讨Vue.js的组件和模板
Oct 27 Javascript
微信小程序实现动态设置placeholder提示文字及按钮选中/取消状态的方法
Dec 14 Javascript
mpvue写一个CPASS小程序的示例
Sep 04 Javascript
Vuejs开发环境搭建及热更新【推荐】
Sep 07 Javascript
浅谈VUE中演示v-for为什么要加key
Jan 16 Javascript
vue中实现回车键登录功能
Feb 19 Javascript
JS数据类型分类及常用判断方法
Nov 19 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将两个关联数组合并函数提高函数效率
2014/03/18 PHP
php用户密码加密算法分析【Discuz加密算法】
2016/10/12 PHP
Laravel 框架控制器 Controller原理与用法实例分析
2020/04/14 PHP
理解JavaScript的prototype属性
2012/02/11 Javascript
基于Angularjs实现分页功能
2016/05/30 Javascript
AngularJS教程 ng-style 指令简单示例
2016/08/03 Javascript
用JS写的一个Ajax库(实例代码)
2016/08/06 Javascript
JS获取中文拼音首字母并通过拼音首字母快速查找页面内对应中文内容的方法【附demo源码】
2016/08/19 Javascript
js 判断附件后缀的简单实现方法
2016/10/11 Javascript
javascript 面向对象function详解及实例代码
2017/02/28 Javascript
实现微信小程序的wxml文件和wxss文件在webstrom的支持
2017/06/12 Javascript
VUE+Element环境搭建与安装的方法步骤
2019/01/24 Javascript
AjaxFileUpload.js实现异步上传文件功能
2019/04/19 Javascript
JavaScript中的ES6 Proxy的具体使用
2019/06/16 Javascript
浅谈一个webpack构建速度优化误区
2019/06/24 Javascript
微信小程序可滑动周日历组件使用详解
2019/10/21 Javascript
echarts 使用formatter 修改鼠标悬浮事件信息操作
2020/07/20 Javascript
Vue 实现创建全局组件,并且使用Vue.use() 载入方式
2020/08/11 Javascript
剖析Django中模版标签的解析与参数传递
2015/07/21 Python
python模糊图片过滤的方法
2018/12/14 Python
Python3的高阶函数map,reduce,filter的示例详解
2019/07/23 Python
python 画函数曲线示例
2019/12/04 Python
Python谱减法语音降噪实例
2019/12/18 Python
互斥锁解决 Python 中多线程共享全局变量的问题(推荐)
2020/09/28 Python
html5中监听canvas内部元素点击事件的三种方法
2019/04/28 HTML / CSS
英国剑桥包中文官网:The Cambridge Satchel Company中国
2018/11/06 全球购物
python re模块和正则表达式
2021/03/24 Python
4s店销售经理岗位职责
2014/07/19 职场文书
群众路线批评与自我批评发言稿
2014/10/16 职场文书
简单租房协议书
2014/10/21 职场文书
房地产工程部经理岗位职责
2015/04/09 职场文书
《老人与海鸥》教学反思
2016/02/16 职场文书
2016年社会管理综治宣传月活动总结
2016/03/16 职场文书
安全责任协议书范本
2016/03/23 职场文书
使用HttpSessionListener监听器实战
2022/03/17 Java/Android
SQL Server中的游标介绍
2022/05/20 SQL Server