Я использую DatePicker для выбора дня встречи. Я уже установил диапазон дат только на следующий месяц. Это отлично работает. Я хочу исключить субботу и воскресенье из доступных вариантов. Можно ли это сделать? Если да, то как?
Я использую DatePicker для выбора дня встречи. Я уже установил диапазон дат только на следующий месяц. Это отлично работает. Я хочу исключить субботу и воскресенье из доступных вариантов. Можно ли это сделать? Если да, то как?
Существует beforeShowDay
опция, которая принимает функцию, которая будет вызываться для каждой даты, возвращая true, если дата разрешена, или false, если это не так. Из документов:
beforeShowDay
Функция принимает дату в качестве параметра и должна возвращать массив с [0], равным true / false, указывающим, может ли эта дата быть выбрана, и 1 равно названию (ам) класса CSS или '' для представления по умолчанию. Он вызывается для каждого дня в средстве выбора даты до его отображения.
Показать некоторые национальные праздники в DatePicker.
$(".selector").datepicker({ beforeShowDay: nationalDays})
natDays = [
[1, 26, 'au'], [2, 6, 'nz'], [3, 17, 'ie'],
[4, 27, 'za'], [5, 25, 'ar'], [6, 6, 'se'],
[7, 4, 'us'], [8, 17, 'id'], [9, 7, 'br'],
[10, 1, 'cn'], [11, 22, 'lb'], [12, 12, 'ke']
];
function nationalDays(date) {
for (i = 0; i < natDays.length; i++) {
if (date.getMonth() == natDays[i][0] - 1
&& date.getDate() == natDays[i][1]) {
return [false, natDays[i][2] + '_day'];
}
}
return [true, ''];
}
Существует одна встроенная функция, которая называется noWeekends, которая предотвращает выбор выходных дней.
$(".selector").datepicker({ beforeShowDay: $.datepicker.noWeekends })
Чтобы объединить два, вы можете сделать что-то вроде (предполагая nationalDays
функцию сверху):
$(".selector").datepicker({ beforeShowDay: noWeekendsOrHolidays})
function noWeekendsOrHolidays(date) {
var noWeekend = $.datepicker.noWeekends(date);
if (noWeekend[0]) {
return nationalDays(date);
} else {
return noWeekend;
}
}
Обновление : обратите внимание, что в jQuery UI 1.8.19 опция beforeShowDay также принимает дополнительный третий параметр, всплывающую подсказку
Uncaught TypeError: Cannot read property 'noWeekends' of undefined
что функция национальных дней работает, как и ожидалосьЕсли вы не хотите, чтобы выходные выходили вообще, просто:
CSS
источник
td.ui-datepicker-week-end { visibility: hidden; }
Эти ответы были очень полезны. Спасибо.
Мой вклад ниже добавляет массив, где несколько дней могут возвращать false (мы закрыты каждый вторник, среду и четверг). И я связал конкретные даты плюс годы и функции без выходных.
Если вы хотите, чтобы выходные были выходными, добавьте [суббота], [воскресенье] в массив closedDays.
источник
DatePicker имеет эту встроенную функциональность!
http://api.jqueryui.com/datepicker/#utility-noWeekends
источник
Решение, которое всем нравится, кажется очень интенсивным ... лично я думаю, что гораздо проще сделать что-то вроде этого:
Таким образом, ваши даты читаются человеком. Это на самом деле не так уж и отличается, просто для меня это имеет больше смысла.
источник
Эта версия кода заставит вас получать даты праздников из базы данных SQL и отключать указанную дату в пользовательском интерфейсе Datepicker
Создайте базу данных в sql и укажите даты выходных в формате MM / DD / YYYY как Varchar. Поместите приведенное ниже содержимое в файл getdate.php
Удачного кодирования !!!! :-)
источник
Вы можете использовать функцию noWeekends, чтобы отключить выбор выходных
источник
источник
В этой версии месяц, день и год определяет, какие дни блокировать в календаре.
источник
для отключения дней вы можете сделать что-то вроде этого.
<input type="text" class="form-control datepicker" data-disabled-days="1,3">
где 1 - понедельник, а 3 - средаисточник
В последней версии Bootstrap 3 (bootstrap-datepicker.js)
beforeShowDay
ожидается результат в следующем формате:В качестве альтернативы, если вам не нужны CSS и всплывающая подсказка, просто верните логическое значение,
false
чтобы сделать дату недоступной для выбора.Кроме того, нет
$.datepicker.noWeekends
, поэтому вам нужно сделать что-то вроде этого:источник
Для субботы и воскресенья можно сделать что-то подобное
источник