JavaScript用select实现日期控件


Posted in Javascript onJuly 17, 2015

代码很简单,这里就不多废话了,直接给大家源码吧

<!doctype html>
<html>
<head>
<title>年月日</title>
</head>
<body onLoad="init()">
<select id="year" onChange="swap_day()"></select>年
<select id="month" onChange="swap_day()"></select>月
<select id="day"></select>日
</body>
<script>
var month_big = new Array("1","3","5","7","8","10","12"); //包含所有大月的数组
var month_small = new Array("4","6","9","11"); //包含所有小月的数组 

//页面加载时调用的初始化select控件的option的函数
function init()
{
  var select_year = document.getElementById("year"); //获取id为"year"的下拉列表框
  var select_month = document.getElementById("month"); //获取id为"month"的下拉列表框
  var select_day = document.getElementById("day"); //获取id为"day"的下拉列表框
  
  //将年份选项初始化,从1980到2000
  for(var i = 1980; i <= 2000; i++)
  {
    select_year_option = new Option(i, i);
    select_year.options.add(select_year_option);
  }
  
  //将月份选项初始化,从1到12
  for(var i = 1; i <= 12; i++)
  {
    select_month_option = new Option(i, i);
    select_month.options.add(select_month_option);
  }
  
  //调用swap_day函数初始化日期  
  swap_day();
}
//判断数组array中是否包含元素obj的函数,包含则返回true,不包含则返回false
function array_contain(array, obj)
{
  for (var i = 0; i < array.length; i++)
  {
    if (array[i] === obj)
    {
      return true;
    }
  }
  return false;
}

//根据年份和月份调整日期的函数
function swap_day()
{
  var select_year = document.getElementById("year"); //获取id为"year"的下拉列表框
  var select_month = document.getElementById("month"); //获取id为"month"的下拉列表框
  var select_day = document.getElementById("day"); //获取id为"day"的下拉列表框
  
  select_day.options.length = 0; //在调整前先清空日期选项里面的原有选项
  var month = select_month.options[select_month.selectedIndex].value; //获取被选中的月份month
  
  //如果month被包含在month_big数组中,即被选中月份是大月,则将日期选项初始化为31天
  if(array_contain(month_big, month))
  {
    for(var i = 1; i <= 31; i++)
    {
      select_day_option = new Option(i, i);
      select_day.options.add(select_day_option);
    }
  }
  
  //如果month被包含在month_small数组中,即被选中月份是小月,则将日期选项初始化为30天
  else if(array_contain(month_small, month))
  {
    for(var i = 1; i <= 30; i++)
    {
      select_day_option = new Option(i, i);
      select_day.options.add(select_day_option);
    }
  }
  
  //如果month为2,即被选中的月份是2月,则调用initFeb()函数来初始化日期选项
  else
  {
    initFeb();   
  }
}
//判断年份year是否为闰年,是闰年则返回true,否则返回false
function isLeapYear(year)
{
  var a = year % 4;
  var b = year % 100;
  var c = year % 400;
  if( ( (a == 0) && (b != 0) ) || (c == 0) )
  {
    return true;
  }
  return false;
}

//根据年份是否闰年来初始化二月的日期选项
function initFeb()
{
  var select_year = document.getElementById("year"); //获取id为"year"的下拉列表框
  var select_day = document.getElementById("day"); //获取id为"day"的下拉列表框
  var year = parseInt(select_year.options[select_year.selectedIndex].value); //获取被选中的年份并转换成Int
  
  //如果是闰年,则将日期选项初始化为29天
  if(isLeapYear(year))
  {
    for(var i = 1; i <= 29; i++)
    {
      select_day_option = new Option(i, i);
      select_day.options.add(select_day_option);
    }
  }
  
  //如果不是闰年,则将日期选项初始化为28天
  else
  {
    for(var i = 1; i <= 28; i++)
    {
      select_day_option = new Option(i, i);
      select_day.options.add(select_day_option);
    }
  }
}
</script>
</html>

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
将HTML自动转为JS代码
Jun 26 Javascript
jquery submit ie6下失效的原因分析及解决方法
Nov 15 Javascript
JavaScript中的prototype和constructor简明总结
Apr 05 Javascript
详谈javascript中DOM的基本属性
Feb 26 Javascript
Javascript变量的作用域和作用域链详解
Apr 02 Javascript
javascript实现禁止复制网页内容汇总
Dec 30 Javascript
javascript实现一个简单的弹出窗
Feb 22 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
Jan 12 Javascript
React通过父组件传递类名给子组件的实现方法
Nov 13 Javascript
Layui动态生成select下拉选择框不显示的解决方法
Sep 24 Javascript
基于jQuery实现可编辑的表格
Dec 11 jQuery
前端使用crypto.js进行加密的函数代码
Aug 16 Javascript
纯javascript制作日历控件
Jul 17 #Javascript
javascript生成不重复的随机数
Jul 17 #Javascript
jQuery实现径向动画菜单效果
Jul 17 #Javascript
jquery合并表格中相同文本的相邻单元格
Jul 17 #Javascript
用svg制作富有动态的tooltip
Jul 17 #Javascript
jquery实现根据浏览器窗口大小自动缩放图片的方法
Jul 17 #Javascript
JavaScript调用浏览器打印功能实例分析
Jul 17 #Javascript
You might like
关于session在PHP5的配置文件中的详细设置参数说明
2011/04/20 PHP
php curl 获取https请求的2种方法
2015/04/27 PHP
PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)
2016/09/11 PHP
PHP页面输出搜索后跳转下一页的处理方法
2016/09/30 PHP
PHP 验证身份证是否合法的函数
2017/02/09 PHP
sina的lightbox效果。
2007/01/09 Javascript
基于jquery点击自以外任意处,关闭自身的代码
2012/02/10 Javascript
js禁止页面使用右键(简单示例代码)
2013/11/13 Javascript
JQuery记住用户名和密码的具体实现
2014/04/04 Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
2016/06/30 Javascript
jQuery的ajax和遍历数组json实例代码
2016/08/01 Javascript
JS 实现随机验证码功能
2017/02/15 Javascript
Javascript封装id、class与元素选择器方法示例
2017/03/13 Javascript
Node.js搭建小程序后台服务
2018/01/03 Javascript
详解webpack4多入口、多页面项目构建案例
2018/05/25 Javascript
微信小程序移动拖拽视图-movable-view实例详解
2019/08/17 Javascript
layui时间控件选择时间范围的实现方法
2019/09/28 Javascript
jquery实现吸顶导航效果
2020/01/08 jQuery
解决vue init webpack 下载依赖卡住不动的问题
2020/11/09 Javascript
[01:06] DOTA2英雄背景故事第三期之秩序法则光之守卫
2020/07/07 DOTA
python用post访问restful服务接口的方法
2018/12/07 Python
Python中如何使用if语句处理列表实例代码
2019/02/24 Python
Python实现的银行系统模拟程序完整案例
2019/04/12 Python
PyTorch中Tensor的拼接与拆分的实现
2019/08/18 Python
详解python路径拼接os.path.join()函数的用法
2019/10/09 Python
pycharm不能运行.py文件的解决方法
2020/02/12 Python
Python request使用方法及问题总结
2020/04/26 Python
css3 盒模型以及box-sizing属性全面了解
2016/09/20 HTML / CSS
配件采购员岗位职责
2013/12/03 职场文书
环卫工作汇报材料
2014/10/28 职场文书
2014年度培训工作总结
2014/11/27 职场文书
2014年园林绿化工作总结
2014/12/11 职场文书
大学生国家助学金感谢信
2015/01/23 职场文书
外贸业务员岗位职责
2015/02/13 职场文书
2015年电话客服工作总结
2015/05/18 职场文书
初二英语教学反思
2016/02/15 职场文书