在Jquery日期选取器中未获取完整的月份范围

Not getting full range of months in Jquery Date Picker

本文关键字:范围 获取 日期 Jquery 选取      更新时间:2023-09-26

我已经接管了某人对jQuery日期选择器调用的修改。我遇到的问题是,当我把今天作为最小日期,把一年后的日期作为最大日期时,年份栏显示的是2015&2016年,这是应该的,但月份栏只显示本月至12月。缺少当前月份之前的所有月份。

我不确定我通过的最小日期是否应该改为今年的第一天?或者,即使最短日期是今天,我也可以更改此JavaScript以显示所有月份吗?

function createDatepicker($field) {
    var minDateStr = $field.attr('data-min-date').split('-');
    var maxDateStr = $field.attr('data-max-date').split('-');
    var minDate = new Date(parseInt(minDateStr[2]), parseInt(minDateStr[0])-1, parseInt(minDateStr[1]));
    var maxDate = new Date(parseInt(maxDateStr[2]), parseInt(maxDateStr[0])-1, parseInt(maxDateStr[1]));
    var div = $field.parent();
    var sy = $('.datepicker-year', div).first();
    var sm = $('.datepicker-month', div).first();
    var sd = $('.datepicker-day', div).first();
    $field.datepicker({
        changeMonth: true,
        changeYear: true,
        yearRange: '-' + minDate.getFullYear() + ':+' + maxDate.getFullYear,
        minDate: minDate,
        maxDate: maxDate,
        showOn: 'button',
        firstDay: 1,
        beforeShow: function (obj, inst) {
            var year = parseInt(sy.val());
            var month = parseInt(sm.val());
            var day = parseInt(sd.val());
            if (year > 0 && month > 0 && day > 0) {
                if (month < 10) month = '0' + month;
                if (day < 10) day = '0' + day;
                $(obj).datepicker('setDate', month + '/' + day + '/' + year);
            }
        },
        onClose: function (dateText, inst) {
            if (dateText != undefined && dateText.length > 0) {
                var date = dateText.split('/');
                var year = parseInt(date[2]);
                var month = parseInt(date[0]);
                var day = parseInt(date[1]);
                sy.val(year);
                sm.val(month);
                sd.val(day);
            }
        }
    });
}

试着去掉这一行:

yearRange: '-' + minDate.getFullYear() + ':+' + maxDate.getFullYear,

为我工作。