【问题标题】:jQuery datepicker multi-month mode duplicate weeksjQuery datepicker 多月模式重复周
【发布时间】:2012-03-28 12:51:10
【问题描述】:

我想在多月模式下修改 jQuery datepicker 以便在其他月份中不重复其他月份的日期(见下图,我想删除红色标记的日期)。你能帮帮我吗?

如你所问,这是我的日历代码:

$(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();
        }
    });
});

【问题讨论】:

  • 你用的是什么日期选择器?你的代码是什么样的?
  • 标准 jQuery 日期选择器(jquery-1.6.2,jquery-ui-1.8.14.custom)
  • 正如@AndrewWhitaker 所说,我们需要您发布一些代码。你想做的事情在 jQuery 的演示页面上工作得很好......jqueryui.com/demos/datepicker/#multiple-calendars

标签: jquery datepicker


【解决方案1】:

你应该去掉这两行:

showOtherMonths: true,
selectOtherMonths: true,

选项showOtherMonths“在当月开始或结束时显示其他月份的日期(不可选择)”和selectOtherMonths“当可选择显示在当前月份之前或之后的其他月份的真实天数时。”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多