在dojo中的DateTextbox中禁用多个日期/日期范围

时间:2014-07-01 10:16:22

标签: dojo

我想在Dojo中使用dateTextBox供用户选择date.And我想限制我的日期选择仅限于接下来的10天(周末除外)。

所以如果我的日期从星期一开始(2014年6月30日)然后它应该启用星期一(2014年6月30日)到星期五(2014年7月4日),然后解散星期六(05/07/2014)-sunday(06/07/2014并且再次启用星期一(2014年7月7日)到星期五(2014年7月11日)。

- 提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以通过覆盖rangeCheck功能来禁用特定日期,例如:

var SUNDAY = 0, SATURDAY = 6, TWO_WEEKS = 1000 * 60 * 60 * 24 * 14;
registry.byId("myDate").set('rangeCheck', function(date, constraints) {
    var isValid = date.getDay() !== SUNDAY && date.getDay() !== SATURDAY; // Weekend check
    var today = new Date();
    today.setHours(0, 0, 0, 0);
    var diffms = date.getTime() - today.getTime();
    isValid &= diffms >= 0 && diffms <= TWO_WEEKS; // Two week check
    return isValid;
});

我在这里使用当前的一天来获得接下来的两周,但您可以在约束中添加特定日期,这些日期也会传递给rangeCheck函数。

可以在JSFiddle上找到完整的示例:http://jsfiddle.net/rkC9h/