基于JQuery的日期联动实现代码


Posted in Javascript onFebruary 24, 2011

实现目标:

基于JQuery的日期联动实现代码

两个日期,有下拉框:

<head> 
//导入jquery地址 
<script src="(Jquery地址)" language="JavaScript" type="text/javascript"></script> 
<script type="text/javascript"> 
//startYear发生变化 
function changeYear(str,isstart) 
{ 
var pre = "start"; 
if(isstart == false) 
{ 
pre = "end"; 
} 
var startMonth = $(pre + "Month").value; 
if(startMonth == "") 
{ 
var e = $(pre + "Month"); 
optionClear(e); 
return; 
} 
var n = MonHead[startMonth - 1]; 
if(startMonth == 2 && IsPinYear($(pre + "Year").value)) 
{ 
n++; 
} 
writeDay(n,pre); 
} 
function changeMonth(str,isstart) 
{ 
var pre = "start"; 
if(isstart == false) 
{ 
pre = "end"; 
} 
var year = $(pre + "Year").value; 
if(year == "") 
{ 
var e = $(pre + "Day"); 
optionClear(e); 
return; 
} 
var n = MonHead[str - 1]; 
if(str == 2 && IsPinYear($(pre + "Year"))) 
{ 
n++; 
} 
writeDay(n,pre); 
} 
function dateStart() 
{ 
var defaultStartY = "2011"; 
var defaultStartM = "1"; 
var defaultStartD = "14"; 
var defaultEndY = "2011"; 
var defaultEndM = "2"; 
var defaultEndD = "23"; 
MonHead = [31,28,31,30,31,30,31,31,30,31,30,31]; 
var prestr = new Array("start","end"); 
for(var j=0; j<2; j++) 
{ 
var pre = prestr[j]; 
//start 年 
var y = new Date().getFullYear(); 
if(pre == "start") 
{ 
//start初始选中前第10天 
var i_index = 0; 
for(var i=(y-10); i<=y; i++) 
{ 
$(pre+"Year").options.add(new Option(""+i+"",i)); 
if(i == defaultStartY) 
{ 
$(pre+"Year").options[i_index].selected = true; 
} 
i_index++; 
} 
} 
else 
{ 
var i_index =0; 
for(var i=(y-5); i<=y+5; i++) 
{ 
$(pre+"Year").options.add(new Option(""+i+"",i)); 
if(i == defaultEndY) 
{ 
$(pre+"Year").options[i_index].selected = true; 
} 
i_index++; 
} 
} 
//start月 
defaultM = (pre == "start" ? defaultStartM : defaultEndM) 
for(var i = 1; i < 13; i++) 
{ 
$(pre + "Month").options.add(new Option(""+i+"",i)); 
if(i == defaultM) 
{ 
$(pre + "Month").options[i-1].selected = true; 
} 
} 
//start日 
var n = MonHead[$(pre + "Month").value]; 
if(new Date().getMonth == 1 && IsPinYear($(pre + "Year").value)) 
{ 
n++; 
} 
defaultD = (pre == "start" ? defaultStartD : defaultEndD) 
writeDay(n,pre); 
$(pre + "Day").options[defaultD-1].selected = true; 
} 
} 
function writeDay(n,pre) 
{ 
var e = $(pre + "Day"); 
optionClear(e); 
for (var i=1; i<(n+1); i++) 
{ 
e.options.add(new Option(""+i+"",i)); 
} 
} 
function IsPinYear(year) 
{ 
return (0 == year%4 && (year%100 != 0 || year % 4 == 0)); 
} 
function optionClear(e) 
{ 
for(var i=e.options.length; i>=0; i--) 
{ 
e.remove(i); 
} 
} 
</script> 
</head> 
<body onload="dateStart()"> 
<p name="selectdate"> 
从 
<select id="startYear" name="startYear" onchange="changeYear(this.value,true)"> 
</select> 
年 
<select id="startMonth" name="startMonth" onchange="changeMonth(this.value,true)"> 
</select> 
月 
<select id="startDay" name="startDay"> 
</select> 
日 
到 
<select id="endYear" name="endYear" onchange="changeYear(this.value,false)"> 
</select> 
年 
<select id="endMonth" name="endMonth" onchange="changeMonth(this.value,false)"> 
</select> 
月 
<select id="endDay" name="endDay"> 
</select> 
日 
</p> 
</body>

参考了一些代码,希望对需要的朋友有所帮助。
Javascript 相关文章推荐
JS类的封装及实现代码
Dec 02 Javascript
js里的prototype使用示例
Nov 19 Javascript
file模式访问网页时iframe高度自适应解决方案
Jan 16 Javascript
对 jQuery 中 data 方法的误解分析
Jun 18 Javascript
jquery插件NProgress.js制作网页加载进度条
Jun 05 Javascript
Bootstrap基础学习
Jun 16 Javascript
js正则表达式中exec用法实例
Jul 23 Javascript
jquery实现选中单选按钮下拉伸缩效果
Aug 06 Javascript
Bootstrap布局组件教程之Bootstrap下拉菜单
Jun 12 Javascript
JavaScript 对象详细整理总结
Sep 29 Javascript
vue组件实现文字居中对齐的方法
Aug 23 Javascript
在Vue项目中引入腾讯验证码服务的教程
Apr 03 Javascript
jQuery boxy弹出层插件中文演示及使用讲解
Feb 24 #Javascript
jquery的键盘事件修改代码
Feb 24 #Javascript
Javascript公共脚本库系列(一): 弹出层脚本
Feb 24 #Javascript
从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
Feb 23 #Javascript
从零开始学习jQuery (十) jQueryUI常用功能实战
Feb 23 #Javascript
从零开始学习jQuery (八) 插播:jQuery实施方案
Feb 23 #Javascript
从零开始学习jQuery (六) jquery中的AJAX使用
Feb 23 #Javascript
You might like
第五章 php数组操作
2011/12/30 PHP
PHP逐行输出(ob_flush与flush的组合)
2012/02/04 PHP
IE与FireFox的兼容性问题分析
2007/04/22 Javascript
javascript 面向对象编程基础 多态
2009/08/21 Javascript
需要做特殊处理的DOM元素属性的访问
2010/11/05 Javascript
Extjs中使用extend(js继承) 的代码
2012/03/15 Javascript
js限制textarea每行输入字符串长度的代码
2012/10/31 Javascript
html文档中的location对象属性理解及常见的用法
2014/08/13 Javascript
javascript嵌套函数和在函数内调用外部函数的区别分析
2016/01/31 Javascript
ReactNative短信验证码倒计时控件的实现代码
2017/07/20 Javascript
[js高手之路]原型式继承与寄生式继承详解
2017/08/28 Javascript
vue-cli配置环境变量的方法
2018/07/09 Javascript
vue 登录滑动验证实现代码
2018/08/24 Javascript
JS实现换肤功能的方法实例详解
2019/01/30 Javascript
JQuery中的常用事件、对象属性与使用方法分析
2019/12/23 jQuery
简单介绍Python中的几种数据类型
2016/01/02 Python
Python2.x利用commands模块执行Linux shell命令
2016/03/11 Python
python基础之入门必看操作
2017/07/26 Python
深入浅析python 中的匿名函数
2018/05/21 Python
Python简单基础小程序的实例代码
2019/04/28 Python
Python 读取串口数据,动态绘图的示例
2019/07/02 Python
使用Python为中秋节绘制一块美味的月饼
2019/09/11 Python
Python面向对象中类(class)的简单理解与用法分析
2020/02/21 Python
Python爬虫小例子——爬取51job发布的工作职位
2020/07/10 Python
python设置中文界面实例方法
2020/10/27 Python
DAWGS鞋官方网站:鞋,凉鞋,靴子
2016/10/04 全球购物
希尔顿酒店官方网站:Hilton Hotels
2017/06/01 全球购物
面向对象设计的原则是什么
2013/02/13 面试题
物流仓储计划书
2014/01/10 职场文书
酒店总经理助理职责
2014/02/12 职场文书
《大作家的小老师》教学反思
2014/04/16 职场文书
家长通知书家长评语
2014/04/17 职场文书
建筑工程质量通病防治方案
2014/06/08 职场文书
大学生创业计划书怎么写
2014/09/15 职场文书
个人总结与自我评价2015
2015/03/11 职场文书
电话营销开场白
2015/05/29 职场文书