年月日联动

年月日的四级联动

 

var StartYear = 1980;
var EndYear = 2500;

function MonthAndDay()
{
    this.initDDL = function(objYear,objMonth,objDay,hidYear,hidMonth,hidDay)
    {
        this.init(objYear,objMonth,objDay,hidYear,hidMonth,hidDay);
        this.SelectChange(objYear,objMonth,objDay,hidYear,hidMonth,hidDay);
    }
   
    this.init = function(objYear,objMonth,objDay,hidYear,hidMonth,hidDay)
    {
        var year = document.getElementById(objYear);
        var month = document.getElementById(objMonth);
        var day = document.getElementById(objDay);
        var me=this;
       
        if(year.length == 1)
        {
            year.options[0] = new Option("不限","");
            for(var i = StartYear; i < EndYear; i++)
            {
                year.options[year.length] = new Option(i,i);
            }
        }
        me.yearOptionsChange(document.all[objYear].value,objYear,objMonth,objDay);
        me.monthOptionsChange(document.all[objYear].value,document.getElementById(objMonth).value,objDay);     
    }
   
    this.yearOptionsChange = function(selectValue,objYear,objMonth,objDay)
    {
        var month = document.getElementById(objMonth);
        var day = document.getElementById(objDay);
        var me=this;
        month.length = 0;
        day.length = 0;
        month.options[0]=new Option("不限",'');
        day.options[0]=new Option("不限",'');
       
        if(selectValue == "")
        {
            return ;
        }
       
        for(var i = 1; i < 13; i++)
        {
            month.options[month.length] = new Option((i < 10 ? ("0" + i) : i),i);
        }
        me.monthOptionsChange(document.getElementById(objYear).value,document.getElementById(objMonth).value,objDay);
    }
   
    this.monthOptionsChange = function(yearSelectValue,monthSelectValue,objDay)
    {
        var day = document.getElementById(objDay);
        var endDay;
        day.length = 0;
       
        day.options[0]=new Option("不限",'');       
       
        if(monthSelectValue == "")
        {
            return;
        }
        if((parseInt(yearSelectValue) % 400 == 0) || (parseInt(yearSelectValue) % 4 == 0 && parseInt(yearSelectValue) % 100 != 0))
        {
            if(parseInt(monthSelectValue) == "2")
            {
                endDay = 29;
            }                  
        }
        else
        {
            if(parseInt(monthSelectValue) == "2")
            {
                endDay = 28;
            }
        }
        switch(parseInt(monthSelectValue))
        {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                endDay = 31;
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                endDay = 30;
                break;
        }
       
        for(var i = 1; i <= endDay; i++)
        {
            day.options[day.length] = new Option((i < 10 ? ("0" + i) : i),i);
        }
    }
   
    this.SelectChange = function(objYear,objMonth,objDay,hidYear,hidMonth,hidDay)
    {
        var year = document.all[objYear];
        var month = document.all[objMonth];
        var day = document.all[objDay];
        var me = this;
       
        year.onchange = function()
        {
            me.yearOptionsChange(this.options[this.selectedIndex].value,objYear,objMonth,objDay);
            document.all[hidYear].value = this.options[this.selectedIndex].value;
            document.all[hidMonth].value = "";
            document.all[hidDay].value = "";
        }
       
        month.onchange = function()
        {
            me.monthOptionsChange(document.all[hidYear].value,this.options[this.selectedIndex].value,objDay);
            document.all[hidMonth].value = this.options[this.selectedIndex].value;
            document.all[hidDay].value = "";
        }
       
        day.onchange = function()
        {
            document.all[hidDay].value = day.selectValue;
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值