根据生日来填充下拉字段

时间:2014-06-13 05:08:25

标签: javascript jquery

我能够在几个月,几天和几年里居住。我也能够确定年龄,在我看来,我只允许13岁。

这是我的代码:

$('#reg-yr').change(function(){
    var year = $('#reg-yr').val();
    var month = $('#reg-mn').val();
    var date = $('#reg-dt').val();

    var firstdate=new Date(year,month,date);
    var today = new Date();
    var dayDiff = Math.ceil(today.getTime() - firstdate.getTime()) / (1000 * 60 * 60 * 24 * 365);
    var age = parseInt(dayDiff);
});

此代码检查年份变化的年龄。我现在遇到的问题是如何根据年龄填充月份下拉字段。

例如: 今天的日期是2014年6月13日

我生日下拉的默认日期是1980年1月1日

我想要的是例如当我将年份改为2001年时,将根据最大年龄填充月份。

所以下拉应该只包括1月份到5月份。

JSFIDDLE

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

     $('#reg-yr').change(function(){
             var months =['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
        var year =  $('#reg-yr').val();
        var month = $('#reg-mn').val();
        var date = $('#reg-dt').val();
         var today = new Date();
         var i = 0;
        for(i=0;i <= 12;i++)
        {
            var firstdate=new Date(year,i,date);
             var dayDiff = Math.ceil(today.getTime() - firstdate.getTime()) / (1000 * 60 * 60 * 24 * 365);
             var age = parseInt(dayDiff);

            if(age < 13)
                break;
        }

$('#reg-mn').html('')
        for(j=0;j <(i-1);j++)
        {
            $('#reg-mn').append('<option value="'+ j +'">'+ months[j] +'</option>') ;
        }
    });

请参阅js fiddel

上的解决方案

在JSFIDDLE上也更新了

答案 1 :(得分:0)

试试这个......

$('#reg-yr').change(function(){
    var year = $('#reg-yr').val();
    var month = $('#reg-mn').val();
    var date = $('#reg-dt').val();

    var firstdate=new Date(year,month,date);
    var today = new Date();
    var dayDiff = Math.ceil(today.getTime() - firstdate.getTime()) / (1000 * 60 * 60 * 24 * 365);
    var age = parseInt(dayDiff);


    html = '<option value="">Select Month</option>';
    for(i=1;i<=age;i++) {
        html += '<option value="'+i+'">'+i+'</option>';
    }

    $('select').html(html);

    });