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 相关文章推荐
Js Jquery创建一个弹出层可加载一个页面
May 08 Javascript
JavaScript获取网页支持表单字符集的方法
Apr 02 Javascript
JS+CSS实现带有碰撞缓冲效果的竖向导航条代码
Sep 15 Javascript
Ionic如何实现下拉刷新与上拉加载功能
Jun 03 Javascript
使用js获取地址栏参数的方法推荐(超级简单)
Jun 14 Javascript
JS中使用DOM来控制HTML元素
Jul 31 Javascript
JavaScript实现选中文字提示新浪微博分享效果
Jun 15 Javascript
JSON 数据格式详解
Sep 13 Javascript
VSCode配置react开发环境的步骤
Dec 27 Javascript
AjaxUpLoad.js实现文件上传功能
Mar 02 Javascript
JavaScript禁止右击保存图片,禁止拖拽图片的实现代码
Apr 28 Javascript
Javascript var变量删除原理及实现
Aug 26 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准确获取文件MIME类型的方法
2015/06/17 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
2016/03/08 PHP
Laravel框架实现抢红包功能示例
2019/10/31 PHP
nodejs下打包模块archiver详解
2014/12/03 NodeJs
移动设备web开发首选框架:zeptojs介绍
2015/01/29 Javascript
js实现简单计算器
2015/11/22 Javascript
indexedDB bootstrap angularjs之 MVC DOMO (应用示例)
2016/06/20 Javascript
AngularJS学习第一篇 AngularJS基础知识
2017/02/13 Javascript
原生js轮播(仿慕课网)
2017/02/15 Javascript
@ResponseBody 和 @RequestBody 注解的区别
2017/03/08 Javascript
JS/jquery实现一个网页内同时调用多个倒计时的方法
2017/04/27 jQuery
js实现股票实时刷新数据案例
2017/05/14 Javascript
JavaScript实现获取用户单击body中所有A标签内容的方法
2017/06/05 Javascript
jQuery实现 RadioButton做必选校验功能
2017/06/15 jQuery
js实现从左向右滑动式轮播图效果
2017/07/07 Javascript
纯html+css+javascript实现楼层跳跃式的页面布局(实例代码)
2017/10/25 Javascript
从零开始最小实现react服务器渲染详解
2018/01/26 Javascript
微信小程序访问豆瓣电影api的实现方法
2019/03/31 Javascript
NodeJs实现简易WEB上传下载服务器
2019/08/10 NodeJs
[02:22]《新闻直播间》2017年08月14日
2017/08/15 DOTA
详解Python3.1版本带来的核心变化
2015/04/07 Python
Python的条件语句与运算符优先级详解
2015/10/13 Python
Python+matplotlib实现华丽的文本框演示代码
2018/01/22 Python
python使用筛选法计算小于给定数字的所有素数
2018/03/19 Python
python游戏地图最短路径求解
2019/01/16 Python
python统计字符串中字母出现次数代码实例
2020/03/02 Python
Dillard’s百货官网:Dillards.com
2018/05/26 全球购物
印度尼西亚电子产品购物网站:Kliknklik
2018/06/05 全球购物
英国定做窗帘和纺织品面料一站式商店:Dekoria
2018/08/29 全球购物
索引覆盖(Index Covering)查询含义
2012/02/18 面试题
大四自我鉴定范文
2013/10/06 职场文书
行政文秘岗位职责范本
2014/02/10 职场文书
党的群众路线教育实践活动总结大会主持词
2014/10/30 职场文书
2015年学生会工作总结范文
2015/03/31 职场文书
小学运动会加油稿
2015/07/22 职场文书
车辆安全隐患排查制度
2015/08/05 职场文书