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 相关文章推荐
高效率JavaScript编写技巧整理
Aug 23 Javascript
javascript获取函数名称、函数参数、对象属性名称的代码实例
Apr 12 Javascript
jquery+CSS3实现3D拖拽相册效果
Jul 18 Javascript
AngularJS的ng-repeat指令与scope继承关系实例详解
Jan 21 Javascript
bootstrap select插件封装成Vue2.0组件
Apr 17 Javascript
基于JavaScript实现抽奖系统
Jan 16 Javascript
Javascript Promise用法详解
May 10 Javascript
小程序点赞收藏功能的实现代码示例
Sep 07 Javascript
vue axios基于常见业务场景的二次封装的实现
Sep 21 Javascript
用vscode开发vue应用的方法步骤
May 06 Javascript
jquery获取input输入框中的值
Nov 13 jQuery
解决VUE mounted 钩子函数执行时 img 未加载导致页面布局的问题
Jul 27 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
索尼SONY SRF-S83/84电路分析和打磨
2021/03/02 无线电
PHP $_SERVER详解
2009/01/16 PHP
晋城吧对DiscuzX进行的前端优化要点
2010/09/05 PHP
php设计模式 Decorator(装饰模式)
2011/06/26 PHP
Ajax请求PHP后台接口返回信息的实例代码
2018/08/21 PHP
Javascript与flash交互通信基础教程
2008/08/07 Javascript
js表格分页实现代码
2009/09/18 Javascript
javascript 学习笔记(一)DOM基本操作
2011/04/08 Javascript
jQuery 文本框得失焦点的简单实例
2014/02/19 Javascript
jquery跨域请求示例分享(jquery发送ajax请求)
2014/03/25 Javascript
JavaScript运动减速效果实例分析
2015/08/04 Javascript
微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决
2016/12/14 Javascript
Js apply方法详解
2017/02/16 Javascript
Vue.js获取被选择的option的value和text值方法
2018/08/24 Javascript
2020京东618叠蛋糕js脚本(亲测好用)
2020/06/02 Javascript
webpack+vue-cil 中proxyTable配置接口地址代理操作
2020/07/18 Javascript
Python迭代和迭代器详解
2016/11/10 Python
windows下python 3.6.4安装配置图文教程
2018/08/21 Python
浅析python中的迭代与迭代对象
2018/10/08 Python
基于Python实现签到脚本过程解析
2019/10/25 Python
在python中做正态性检验示例
2019/12/09 Python
matplotlib事件处理基础(事件绑定、事件属性)
2021/02/03 Python
html5开发之viewport使用
2013/10/17 HTML / CSS
美国最大的珠宝首饰网上商城:Jewelry.com
2016/07/22 全球购物
加拿大床上用品、家居装饰、厨房和浴室产品购物网站:Linen Chest
2018/06/05 全球购物
.NET面试题:什么是值类型和引用类型
2016/01/12 面试题
高三自我鉴定
2013/10/23 职场文书
工作违纪检讨书
2014/02/17 职场文书
幼儿园元旦活动感言
2014/03/02 职场文书
应届大专毕业生自我鉴定
2014/04/08 职场文书
幼儿园六一儿童节主持词
2015/06/30 职场文书
2015大学生暑期实习报告
2015/07/13 职场文书
在 Golang 中实现 Cache::remember 方法详解
2021/03/30 Python
django注册用邮箱发送验证码的实现
2021/04/18 Python
Windows11插耳机没反应怎么办? win11耳机没声音的多种解决办法
2021/11/21 数码科技
使用Ajax实现无刷新上传文件
2022/04/12 Javascript