JavaScript

超轻量级php框架startmvc

jQuery实现动态生成年月日级联下拉列表示例

更新时间:2020-08-25 21:42:01 作者:startmvc
本文实例讲述了jQuery实现动态生成年月日级联下拉列表。分享给大家供大家参考,具体如下

本文实例讲述了jQuery实现动态生成年月日级联下拉列表。分享给大家供大家参考,具体如下:

html代码:


<form name="form1" id="dateForm">
 <select name="year"></select>年
 <select name="month"></select>月
 <select name="day"></select>日
</form>

JS代码:


$(function(){
 var i=1945;
 var date=new Date();
 var year=date.getFullYear();//获取当前年份
 var dropList;
 for(var i;i<2017;i++){
 if(i==year){
 dropList=dropList+"<option value='"+i+"' selected>"+i+"</option>";
 }else {
 dropList=dropList+"<option value='"+i+"'>"+i+"</option>";
 }
 }
 $('#dateForm select[name=year]').html(dropList);//生成年份下拉列表
 var monthly;
 for(var j=1;j<13;j++){
 monthly=monthly+'<option value="'+j+'">'+j+'</option>'
 }
 $('#dateForm select[name=month]').html(monthly);//生成月份下拉列表
 var daily;
 for(var day=1;day<=31;day++){
 daily=daily+'<option value="'+day+'">'+day+'</option>';
 }
 $('#dateForm select[name=day]').html(daily);
 $('#dateForm select[name=month]').change(function(){
 var currentDay;
 var total;
 var flag=$('#dateForm select[name=year]:selected').val();
 var currentMonth=$('#dateForm select[name=month]').val();
 switch (currentMonth){
 case "1":
 case "3":
 case "5":
 case "7":
 case "8":
 case "10":
 case "12":total=31;break;
 case "4":
 case "6":
 case "9":
 case "11":total=30;break;
 case "2":
 //闰年 整除4但是不整除100 或者整除400
 if( (flag%4==0 && flag%100!=0 ) || flag%400){
 total=29;
 }else {
 total=28;
 }
 default :break
 }
 for(day=1;day<=total;day++){
 currentDay=currentDay+'<option value="'+day+'">'+day+'</option>'
 }
 $('#dateForm select[name=day]').html(currentDay);//生成日期下拉列表
 });
});

PS:这里再为大家推荐几款时间及日期相关工具供大家参考使用:

在线日期/天数计算器: http://tools.jb51.net/jisuanqi/date_jisuanqi

在线日期计算器/相差天数计算器: http://tools.jb51.net/jisuanqi/datecalc

在线日期天数差计算器: http://tools.jb51.net/jisuanqi/onlinedatejsq

Unix时间戳(timestamp)转换工具: http://tools.jb51.net/code/unixtime

jQuery 动态生成 年月日 级联下拉列表