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 相关文章推荐
jQuery层次选择器选择元素使用介绍
Apr 18 Javascript
JavaScript中使用Substring删除字符串最后一个字符
Nov 03 Javascript
JavaScript检查弹出窗口是否被阻拦的方法技巧
Mar 13 Javascript
jQuery操作之效果详解
May 19 jQuery
vue2 自定义动态组件所遇到的问题
Jun 08 Javascript
基于 Bootstrap Datetimepicker 联动
Aug 03 Javascript
使用vue与jquery实时监听用户输入状态的操作代码
Sep 19 jQuery
jQuery选择器之表单元素选择器详解
Sep 19 jQuery
在 vue-cli v3.0 中使用 SCSS/SASS的方法
Jun 14 Javascript
vue2配置scss的方法步骤
Jun 06 Javascript
微信小程序实现Swiper轮播图效果
Nov 22 Javascript
vue-cli或vue项目利用HBuilder打包成移动端app操作
Jul 29 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 Cookie的一个使用注意点
2008/11/08 PHP
php中DOMElement操作xml文档实例演示
2013/03/26 PHP
Codeigniter实现处理用户登录验证后的URL跳转
2014/06/12 PHP
Laravel 实现数据软删除功能
2019/08/21 PHP
jquery的$(document).ready()和onload的加载顺序
2010/05/26 Javascript
利用腾讯的ip地址库做ip物理地址定位
2010/07/24 Javascript
jquery选择器使用详解
2014/04/08 Javascript
Javascript访问器属性实例分析
2014/12/30 Javascript
Vue.js每天必学之方法与事件处理器
2016/09/06 Javascript
Bootstrap基本样式学习笔记之表单(3)
2016/12/07 Javascript
用node和express连接mysql实现登录注册的实现代码
2017/07/05 Javascript
详解用webpack的CommonsChunkPlugin提取公共代码的3种方式
2017/11/09 Javascript
p5.js入门教程之鼠标交互的示例
2018/03/16 Javascript
nodejs express配置自签名https服务器的方法
2018/05/22 NodeJs
jQuery的Ajax接收java返回数据方法
2018/08/11 jQuery
vue通过滚动行为实现从列表到详情,返回列表原位置的方法
2018/08/31 Javascript
JavaScript禁止右击保存图片,禁止拖拽图片的实现代码
2020/04/28 Javascript
Python正则表达式使用经典实例
2016/06/21 Python
Python中的sort()方法使用基础教程
2017/01/08 Python
python 基础教程之Map使用方法
2017/01/17 Python
详解Python3操作Mongodb简明易懂教程
2017/05/25 Python
flask框架渲染Jinja模板与传入模板变量操作详解
2020/01/25 Python
Python 中如何写注释
2020/08/28 Python
军用级手机壳,专为冒险而建:Zizo Wireless
2019/08/07 全球购物
Python面试题:Python是如何进行内存管理的
2014/08/04 面试题
酒店总经理助理岗位职责
2014/02/01 职场文书
岗位竞聘书范文
2014/03/31 职场文书
机关班子查摆问题及整改措施
2014/10/28 职场文书
群众路线教育实践活动学习笔记内容
2014/11/06 职场文书
2015年银行客户经理工作总结
2015/04/01 职场文书
2015人事行政工作总结范文
2015/05/21 职场文书
幼儿园大班开学寄语(2016秋季)
2015/12/03 职场文书
《猴王出世》教学反思
2016/02/23 职场文书
PyTorch dropout设置训练和测试模式的实现
2021/05/27 Python
浅谈mysql增加索引不生效的几种情况
2021/06/23 MySQL
详解Nginx的超时keeplive_timeout配置步骤
2022/05/25 Servers