利用jQuery动态生成年月日级联

本文介绍了一种使用HTML和JavaScript动态生成日期选择器的方法。该选择器包括年、月、日三个下拉列表,其中年份范围从1945年至2016年,并能根据所选年份和月份自动更新天数选项以反映正确的天数,包括考虑是否为闰年。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);//生成日期下拉列表
    });
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值