0

我试图在 jQuery 日期选择器中仅选择每个月的第一个日期。可能的日期列在 中var enabledates

var enabledDays = ["6-1-2013", "7-1-2013", "8-1-2013", 
                   "9-1-2013", "10-1-2013", "11-1-2013"];
function nationalDays(date) {
    var m = date.getMonth(), d = date.getDate(), y = date.getFullYear();
    for (i = 0; i < enabledDays.length; i++) {
        if($.inArray((m+1) + '-' + d + '-' + y, enabledDays) != -1 
            || new Date() > date) {         
            return [true];
        }
    }
    return [false];
}

$(function(){
    $.datepicker.setDefaults($.extend($.datepicker.regional["ru"]));
    $("#datepicker1, #datepicker2, #datepicker3").datepicker({
                                                    dateFormat: "yy-mm-dd",
                                                    duration: "normal",
                                                    numberOfMonths: [ 1, 2 ],
                                                    constrainInput: true,
                                                    beforeShowDay: nationalDays
                                                });
});

如何将此第一个日期限制应用于整个日历?

4

1 回答 1

0

如果您只想启用一个范围,我会说您可以使用选项属性 minDate 和 maxDate。

关于您启用数组中所有日期的问题。请看看这个小提琴http://jsfiddle.net/uYe9X/

function available(date) {
  var dt= date.getDate() + "-" + (date.getMonth()+1) + "-" + date.getFullYear();
  if (availableDates.indexOf(dt) !== -1) {
    return [true, "","available"];
  } else {
    return [false,"","not available"];
  }
}

正如 Pedro 提到的,您可以使用 beforeShowDay 回调来引用计算是否应该启用这一天的函数。回调用于显示在日期选择器中的每一天。 http://api.jqueryui.com/datepicker/#option-beforeShowDay

于 2013-07-01T12:50:55.823 回答