javascript - 我的错误在哪里 - Javascript/jQuery 中选择框的日期计算器?

标签 javascript jquery date drop-down-menu leap-year

$(.dateselboxes) .change( function(){

var y; y=$("#year").val();
var m; m=$("#month").val();
var d;

//检查闰年

var leapYear;
if(y%4==0)
{
    if(y%100==0)
    {
        if(y%400==0) {leapYear=true;}
        else {leapYear=false;}
    }
    else {leapYear=true;}
}
else {leapYear=false;}

//计算天数

var dz;
if(m==1 || m=3 || m=5 || m=7 || m=8 || m=10 || m=12) {dz=31;}
else if(m==2)
    {
        if(leapYear==true) {dz=29;}
        else {dz=28;}
    }
else {dz=30;}

//多次删除最后一个选项

switch(dz)
    {
        case 28:
            for(i=0;i<3;i++)
            {$("#day option:last").remove();}
            break;
        case 29:
            for(i=0;i<2;i++)
            {$("#day option:last").remove();}
            break;
        case 30:
            $("#day option:last").remove();
            break;
        default:
            var axaxax=0;
            break;
    }

});

最佳答案

给你,这段代码可以工作(至少在 Chrome 中):

var opts = $('#day option').get();

$('#month, #year').change(function() {
    var y = +$('#year').val(),
        m = +$('#month').val(),
        leap = y % 400 === 0 || y % 100 !== 0 && y % 4 === 0 ? true : false,
        days = 30;

    switch ( m ) {
        case 1: case 3: case 5: case 7: case 8: case 10: case 12:
            days = 31; break;
        case 2: 
            days = leap ? 29 : 28; break; 
    }

    $('#day').empty().append( opts.slice(0, days) );

});

现场演示: http://jsfiddle.net/83yUF/

关于javascript - 我的错误在哪里 - Javascript/jQuery 中选择框的日期计算器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4771813/

相关文章:

javascript - Stange javascript Date 在特定日期的行为

date - 与Docker容器共享主机时区

javascript - jQuery 添加类到 xlink :href

javascript - Knockout JS 中选定的下拉菜单 ID

php - 如何在出现 Wordpress 评论计数的地方显示 Facebook 评论?

javascript - 卡牌游戏拖放

date - 如何在Dart/Flutter中获取当前时间的GMT时间偏移值

javascript - 将过滤器 AND 替换为 OR

javascript - 为什么 HTML 按钮图像不会缩小?

javascript - 如何在单击 HTML 内部部分时不调用外部部分的函数?