基于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 相关文章推荐
脚本安需导入(装载)的三种模式的对比
Jun 24 Javascript
javascritp实现input输入框相关限制用法
Jun 29 Javascript
js 链式延迟执行DOME
Jan 04 Javascript
jQuery使用empty()方法删除元素及其所有子元素的方法
Mar 26 Javascript
JavaScript基本语法学习教程
Jan 14 Javascript
jQuery+formdata实现上传进度特效遇到的问题
Feb 24 Javascript
JS组件Bootstrap导航条使用方法详解
Apr 29 Javascript
基于Bootstrap的后台管理面板 Bootstrap Metro Dashboard
Jun 17 Javascript
jquery pagination插件动态分页实例(Bootstrap分页)
Dec 23 Javascript
vue iview 隐藏Table组件里的某一列操作
Nov 13 Javascript
vue打开新窗口并实现传参的图文实例
Mar 04 Vue.js
JS实现页面炫酷的时钟特效示例
Aug 14 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自动加载autoload机制示例分享
2014/02/20 PHP
PHP的魔术常量__METHOD__简介
2014/07/08 PHP
php数组排序usort、uksort与sort函数用法
2014/11/17 PHP
Eclipse PHPEclipse 配置的具体步骤
2017/08/08 PHP
根据地区不同显示时间的javascript代码
2007/08/13 Javascript
超强的IE背景图片闪烁(抖动)的解决办法
2007/09/09 Javascript
JavaScript高级程序设计(第3版)学习笔记8 js函数(中)
2012/10/11 Javascript
js获取多个tagname的节点数组
2013/09/22 Javascript
javascript 密码框防止用户粘贴和复制的实现代码
2014/02/17 Javascript
JS实现在线统计一个页面内鼠标点击次数的方法
2015/02/28 Javascript
深入探究使JavaScript动画流畅的一些方法
2015/06/30 Javascript
不得不分享的JavaScript常用方法函数集(上)
2015/12/23 Javascript
在页面中输出当前客户端时间javascript实例代码
2016/03/02 Javascript
Angular.js实现多个checkbox只能选择一个的方法示例
2017/02/24 Javascript
原生js封装自定义滚动条
2017/03/24 Javascript
详谈jQuery中使用attr(), prop(), val()获取value的异同
2017/04/25 jQuery
微信小程序ajax实现请求服务器数据及模版遍历数据功能示例
2017/12/15 Javascript
js实现小星星游戏
2020/03/23 Javascript
使用PYTHON创建XML文档
2012/03/01 Python
Python中音频处理库pydub的使用教程
2017/06/07 Python
Python实现的读写json文件功能示例
2018/06/05 Python
python中使用iterrows()对dataframe进行遍历的实例
2018/06/09 Python
Django中的文件的上传的几种方式
2018/07/23 Python
6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)
2020/01/06 Python
tensorflow2.0与tensorflow1.0的性能区别介绍
2020/02/07 Python
基于Pytorch SSD模型分析
2020/02/18 Python
python数字类型math库原理解析
2020/03/02 Python
PIL.Image.open和cv2.imread的比较与相互转换的方法
2020/06/03 Python
html5+css3之CSS中的布局与Header的实现
2014/11/21 HTML / CSS
英国手工布艺沙发在线购买:Sofas & Stuff
2018/03/02 全球购物
进步之星获奖感言
2014/02/22 职场文书
用人单位终止解除劳动合同证明书
2014/10/06 职场文书
结婚老公保证书
2015/02/26 职场文书
退货证明模板
2015/06/23 职场文书
springboot使用Redis作缓存使用入门教程
2021/07/25 Redis
SQL IDENTITY_INSERT作用案例详解
2021/08/23 MySQL