#dojo
#dojo
Вопрос:
Я хочу использовать DateTextBox в Dojo, чтобы пользователь мог выбрать дату.И я хочу ограничить выбор даты только на следующие 10 дней (исключая выходные).
Итак, если моя дата начинается с понедельника (30/6/2014), то она должна быть включена с понедельника (30/6/2014) по пятницу (04/07/2014), затем отключена для субботы (05/07/2014)-воскресенье (06/07/2014) и снова включена для понедельника (07.07.2014) по пятницу (07.11.2014).).
— заранее спасибо.
Ответ №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 amp;amp; date.getDay() !== SATURDAY; // Weekend check
var today = new Date();
today.setHours(0, 0, 0, 0);
var diffms = date.getTime() - today.getTime();
isValid amp;= diffms >= 0 amp;amp; diffms <= TWO_WEEKS; // Two week check
return isValid;
});
Я использую текущий день здесь, чтобы получить следующие две недели, но вы могли бы добавить конкретную дату в свои ограничения, которые также передаются rangeCheck
функции.
Полный пример можно найти на JSFiddle:http://jsfiddle.net/rkC9h /
Комментарии:
1. Спасибо за решение. Но предположим, я хочу отключить календарь для любых праздников. Допустим, послезавтра праздник, так как я могу отключить этот конкретный день / дату.
2. Функция выше должна возвращать
true
для действительных дат иfalse
для недействительных дат. Итак, если праздничные дни должны быть недействительными, вам следует каким-то образом условно проверить это (например, предоставив массив праздников, который вы можете использовать для перебора).