根据this post,使用相同的名称应该允许我创建多个disabledDatesRule输入。但是,在我的情况下,它似乎只选择指定的最后一个实例。我创建了以下简化的测试用例。最终,我想将其切换为带颜色的customrenderer。如果我不得不满足于禁用日期,那也是有效的。
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth();
var yyyy = today.getFullYear();
var calendar = new Y.Calendar({
contentBox: "#mycalendar",
width:'888px',
showPrevMonth: true,
showNextMonth: true,
disabledDatesRule: "tuesdays_and_fridays",
minimumDate: new Date(yyyy,mm, dd),
maximumDate: new Date(yyyy,mm, dd+14),
date: new Date()}).render();
var rules={};
var dYear='2014';
var dMonth='7';
var dDate='6';
rules[dYear]={};
rules[dYear][dMonth]={};
rules[dYear][dMonth][dDate]="tuesdays_and_fridays";
var dDate1='7';
rules[dYear]={};
rules[dYear][dMonth]={};
rules[dYear][dMonth][dDate1]="tuesdays_and_fridays";
calendar.set("customRenderer", {
rules: rules,
filterFunction: function (date, node, rules) {
if (Y.Array.indexOf(rules, 'tuesdays_and_fridays') >= 0) {
node.addClass("redtext");
}
}
});
答案 0 :(得分:0)
自己想出来。您可以拥有多个rules []声明,但它们必须是唯一的。我删除了第二条规则[dYear]和规则[dYear] [dMonth]。