jQuery实现日期联动效果实例


Posted in Javascript onJuly 26, 2016

本文实例讲述了jQuery实现日期联动效果的方法。分享给大家供大家参考,具体如下:

实现目标:

jQuery实现日期联动效果实例

两个日期,有下拉框:

<head>
//导入jquery地址
<script src="jquery-1.7.2.min.js" 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>

参考了一些代码,终于能实现了~~

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
Javascript入门学习资料收集整理篇
Jul 06 Javascript
js禁止小键盘输入数字功能代码
Aug 01 Javascript
通过上下左右键和回车键切换光标实现代码
Mar 08 Javascript
js左右弹性滚动对联广告代码分享
Feb 19 Javascript
jquery UI Datepicker时间控件的使用方法(加强版)
Nov 07 Javascript
jquery实现全选、反选、获得所有选中的checkbox
Sep 13 Javascript
AngularJS基础 ng-keyup 指令简单示例
Aug 02 Javascript
easyui datebox 时间限制,datebox开始时间限制结束时间,datebox截止日期比起始日期大的实现代码
Jan 12 Javascript
如何将 jQuery 从你的 Bootstrap 项目中移除(取而代之使用Vue.js)
Jul 17 jQuery
ES6之Proxy的get方法详解
Oct 11 Javascript
vue.js实现照片放大功能
Jun 23 Javascript
vue 解决addRoutes多次添加路由重复的操作
Aug 04 Javascript
一种基于浏览器的自动小票机打印实现方案(js版)
Jul 26 #Javascript
深入理解JavaScript函数参数(推荐)
Jul 26 #Javascript
JavaScript从0开始构思表情插件
Jul 26 #Javascript
只需五句话搞定JavaScript作用域(经典)
Jul 26 #Javascript
第一次接触神奇的Bootstrap基础排版
Jul 26 #Javascript
js获取html的span标签的值方法(超简单)
Jul 26 #Javascript
js无法获取到html标签的属性的解决方法
Jul 26 #Javascript
You might like
php mysql_real_escape_string函数用法与实例教程
2013/09/30 PHP
php递归遍历删除文件的方法
2015/04/17 PHP
PHP图形计数器程序显示网站用户浏览量
2016/07/20 PHP
List the UTC Time on a Computer
2007/06/11 Javascript
理解JavaScript的caller,callee,call,apply
2009/04/28 Javascript
40个有创意的jQuery图片、内容滑动及弹出插件收藏集之一
2011/12/31 Javascript
JavaScript之自定义类型
2012/05/04 Javascript
document.createElement()用法
2013/03/13 Javascript
JavaScript创建一个欢迎cookie弹出窗实现代码
2013/03/15 Javascript
Jquery 模拟用户点击超链接或者按钮的方法
2013/10/25 Javascript
在JavaScript中重写jQuery对象的方法实例教程
2014/08/25 Javascript
Javascript数组操作函数总结
2015/02/05 Javascript
JS简单获取及显示当前时间的方法
2016/08/03 Javascript
angular+webpack2实战例子
2017/05/23 Javascript
利用webstrom调试Vue.js单页面程序的方法教程
2017/06/06 Javascript
基于vue实现滚动条滚动到指定位置对应位置数字进行tween特效
2019/04/18 Javascript
原生js实现随机点名
2020/07/05 Javascript
[43:24]VG vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
老生常谈Python startswith()函数与endswith函数
2017/09/08 Python
python 日志增量抓取实现方法
2018/04/28 Python
Python中使用logging和traceback模块记录日志和跟踪异常
2019/04/09 Python
Python后台开发Django会话控制的实现
2019/04/15 Python
详解Python文件修改的两种方式
2019/08/22 Python
Python爬虫防封ip的一些技巧
2020/08/06 Python
突袭HTML5之Javascript API扩展3—本地存储全新体验
2013/01/31 HTML / CSS
英国体育器材进口商店:UK Sport Imports
2017/03/14 全球购物
进程的查看和调度分别使用什么命令
2013/12/14 面试题
岳父生日宴会答谢词
2014/01/13 职场文书
小学生纪念九一八事变演讲稿
2014/09/14 职场文书
辞职信标准格式
2015/02/27 职场文书
2015年度个人工作总结报告
2015/10/24 职场文书
幼儿园心得体会范文
2016/01/21 职场文书
Python爬虫爬取全球疫情数据并存储到mysql数据库的步骤
2021/03/29 Python
Python基础之函数嵌套知识总结
2021/05/23 Python
如何解决goland,idea全局搜索快捷键失效问题
2022/04/03 Golang
mysql 获取相邻数据项
2022/05/11 MySQL