JQuery DatePicker многомесячный режим дублировать недели - PullRequest
1 голос
/ 28 марта 2012

Я хочу изменить указатель даты jQuery, чтобы не повторять дни другого месяца в каком-либо другом месяце в многомесячном режиме (см. Изображение ниже, я хочу удалить отмеченные красным цветом дни).Вы можете мне помочь?

enter image description here

Как вы спросите, это мой код для календаря:

$(document).ready(function(){
    var weeks = new Array();

    function inWeeks(startDate) {
        for (var i in weeks) {
            if (weeks[i].getTime() == startDate.getTime()) return true;
        }
        return false;
    }

    function removeWeek(startDate) {
        for (var i in weeks) {
            if (weeks[i].getTime() == startDate.getTime()) {
                weeks.splice(i, 1);
                return;
            }
        }
    }

    function addWeek(startDate) {
        weeks.push(startDate);
    }

    var selectCurrentWeek = function() {
        window.setTimeout(function () {
            $('.week-picker').find('.ui-datepicker-current-day a').addClass('ui-state-active')
        }, 1);
    }

    $('.week-picker').datepicker( {
        numberOfMonths: 2,
        showOtherMonths: true,
        selectOtherMonths: true,
        hideIfNoPrevNext: true,
        firstDay: 1,
        onSelect: function(dateText, inst) { 
            var date = $(this).datepicker('getDate');
            var startDate = new Date(date.getFullYear(), date.getMonth(), date.getDate() - date.getDay() + 1);
            //var endDate = new Date(date.getFullYear(), date.getMonth(), date.getDate() - date.getDay() + 6);

            if (inWeeks(startDate)) {
                removeWeek(startDate);
            } else {
                addWeek(startDate);
            }

            selectCurrentWeek();
        },
        beforeShowDay: function(date) {
            var cssClass = '';
            for (var i in weeks) {
                var startDate = weeks[i];
                var endDate = new Date(startDate.getFullYear(), startDate.getMonth(), startDate.getDate() - startDate.getDay() + 7);
                if(date >= startDate && date <= endDate)
                    cssClass = 'ui-datepicker-selected-week-day';
            }
            return [true, cssClass];
        },
        onChangeMonthYear: function(year, month, inst) {
            selectCurrentWeek();
        }
    });
});

1 Ответ

1 голос
/ 28 марта 2012

Вы должны избавиться от этих двух строк:

showOtherMonths: true,
selectOtherMonths: true,

Опция showOtherMonths «Отображать даты в другие месяцы (без выбора) в начале или конце текущего месяца» и selectOtherMonths «Когда можно выбрать истинные дни в других месяцах, показанных до или после текущего месяца."

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...