在Jquery Date Picker中没有完整的月份

时间:2015-06-22 14:19:22

标签: javascript jquery date datepicker

我已经接管了某人对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);
            }
        }
    });
}

1 个答案:

答案 0 :(得分:0)

尝试摆脱这一行:

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

为我工作。