基于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 相关文章推荐
XHTML-Strict 内允许出现的标签
Dec 11 Javascript
简单的邮箱登陆的提示效果类似于yahoo邮箱
Feb 26 Javascript
jQuery如何取id有.的值一般的方法是取不到的
Apr 18 Javascript
用js代码和插件实现wordpress雪花飘落效果的四种方法
Dec 15 Javascript
javascript数据结构与算法之检索算法
Apr 04 Javascript
Javascript的表单验证-初识正则表达式
Mar 18 Javascript
JQuery Mobile 弹出式登录框的实现方法
May 28 Javascript
node-http-proxy修改响应结果实例代码
Jun 06 Javascript
移动端翻页插件dropload.js(支持Zepto和jQuery)
Jul 27 Javascript
JS中showModalDialog关闭子窗口刷新主窗口用法详解
Mar 25 Javascript
slideToggle+slideup实现手机端折叠菜单效果
May 25 Javascript
vue数据响应式原理知识点总结
Feb 16 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 mkdir()定义和用法
2009/01/14 PHP
discuz authcode 经典php加密解密函数解析
2020/07/12 PHP
php使用cookie保存用户登录的用户名实例
2015/01/26 PHP
php实现mysql数据库连接操作及用户管理
2015/11/08 PHP
基于PHP实现数据分页显示功能
2016/05/26 PHP
PHP实现字符串翻转功能的方法【递归与循环算法】
2017/11/03 PHP
javascript 流畅动画实现原理
2009/09/08 Javascript
JS+CSS实现淡入式焦点图片幻灯切换效果的方法
2015/02/26 Javascript
作为老司机使用 React 总结的 11 个经验教训
2017/04/08 Javascript
jquery实现放大镜简洁代码(推荐)
2017/06/08 jQuery
Vue响应式原理深入解析及注意事项
2017/12/11 Javascript
web前端页面生成exe可执行文件的方法
2018/02/08 Javascript
ios设备中angularjs无法改变页面title的解决方法
2018/09/13 Javascript
JavaScript ES2019中的8个新特性详解
2019/02/20 Javascript
Vue+Express实现登录注销功能的实例代码
2019/05/05 Javascript
简单了解Vue + ElementUI后台管理模板
2020/04/07 Javascript
Python自定义线程池实现方法分析
2018/02/07 Python
Python爬虫实例扒取2345天气预报
2018/03/04 Python
Python检查和同步本地时间(北京时间)的实现方法
2018/12/03 Python
Python 加密与解密小结
2018/12/06 Python
在python3中pyqt5和mayavi不兼容问题的解决方法
2019/01/08 Python
Python OpenCV读取显示视频的方法示例
2020/02/20 Python
jupyter notebook 调用环境中的Keras或者pytorch教程
2020/04/14 Python
在tensorflow以及keras安装目录查询操作(windows下)
2020/06/19 Python
Visual Studio Code搭建django项目的方法步骤
2020/09/17 Python
基于Python模拟浏览器发送http请求
2020/11/06 Python
使用python对excel表格处理的一些小功能
2021/01/25 Python
CSS3选择器新增问题的实现
2021/01/21 HTML / CSS
美国婴儿和儿童家具网上商店:ABaby.com
2018/07/02 全球购物
澳大利亚网上买书:Angus & Robertson
2019/07/21 全球购物
写给妈妈的道歉信
2014/01/11 职场文书
校长先进事迹材料
2014/02/01 职场文书
社区优秀志愿者材料
2014/02/02 职场文书
企业读书活动总结
2014/06/30 职场文书
2014年党员整改措施
2014/10/24 职场文书
先进工作者事迹材料
2014/12/23 职场文书