基于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 相关文章推荐
Prototype RegExp对象 学习
Jul 19 Javascript
jQuery中delegate()方法用法实例
Jan 19 Javascript
jQuery中使用each处理json数据
Apr 23 Javascript
Js实现无刷新删除内容
Apr 29 Javascript
在easyUI开发中,出现jquery.easyui.min.js函数库问题的解决办法
Sep 11 Javascript
js和jquery分别验证单选框、复选框、下拉框
Dec 17 Javascript
JavaScript对象_动力节点Java学院整理
Jun 23 Javascript
浅谈Vue.nextTick 的实现方法
Oct 25 Javascript
Vue2.0用户权限控制解决方案
Nov 29 Javascript
基于vue实现移动端圆形旋钮插件效果
Nov 28 Javascript
html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片
Jan 12 Javascript
JS原生实现轮播图的几种方法
Mar 23 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
thinkphp制作404跳转页的简单实现方法
2016/09/22 PHP
php实现将数据做成json的格式给前端使用
2018/08/21 PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
2020/09/17 PHP
jquery垂直公告滚动实现代码
2013/12/08 Javascript
jquery获取tr并更改tr内容示例代码
2014/02/13 Javascript
父页面显示遮罩层弹出半透明状态的dialog
2014/03/04 Javascript
Jquery基础教程之DOM操作
2015/08/19 Javascript
基于jQuery实现网页打印功能
2015/12/01 Javascript
三分钟带你玩转jQuery.noConflict()
2016/02/15 Javascript
JavaScript数组的栈方法与队列方法详解
2016/05/26 Javascript
JS定时器使用,定时定点,固定时刻,循环执行详解
2016/05/31 Javascript
Bootstrap Table实现定时刷新数据的方法
2018/08/13 Javascript
jQuery HTML获取内容和属性操作实例分析
2020/05/20 jQuery
vue+axios全局添加请求头和参数操作
2020/07/24 Javascript
[48:47]VGJ.S vs NB 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python解决字典中的值是列表问题的方法
2013/03/04 Python
详解python中的json的基本使用方法
2016/12/21 Python
linux环境下的python安装过程图解(含setuptools)
2017/11/22 Python
Python 实现12306登录功能实例代码
2018/02/09 Python
Python使用zip合并相邻列表项的方法示例
2018/03/17 Python
利用python为运维人员写一个监控脚本
2018/03/25 Python
Python 元类实例解析
2018/04/04 Python
python3 字符串/列表/元组(str/list/tuple)相互转换方法及join()函数的使用
2019/04/03 Python
TensorFlow实现简单的CNN的方法
2019/07/18 Python
Docker部署Python爬虫项目的方法步骤
2020/01/19 Python
Python基于gevent实现文件字符串查找器
2020/08/11 Python
PyCharm 2020.2下配置Anaconda环境的方法步骤
2020/09/23 Python
解决pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation (‘D:\\python3.6\\lib\\site-packa的问题
2020/12/08 Python
python用分数表示矩阵的方法实例
2021/01/11 Python
HTML5实现锚点时请使用id取代name
2013/09/06 HTML / CSS
管理学院毕业生自荐信范文
2014/03/10 职场文书
小学教师师德师风个人整改措施
2014/09/18 职场文书
教师四风问题对照检查材料
2014/09/26 职场文书
铁人纪念馆观后感
2015/06/16 职场文书
企业愿景口号
2015/12/25 职场文书
详解TypeScript中的类型保护
2021/04/29 Javascript