Korzystam z datownika do wyboru dnia spotkania. Już ustawiłem zakres dat na następny miesiąc. To działa dobrze. Chcę wykluczyć soboty i niedziele z dostępnych opcji. Czy można to zrobić? Jeśli tak to jak?
Korzystam z datownika do wyboru dnia spotkania. Już ustawiłem zakres dat na następny miesiąc. To działa dobrze. Chcę wykluczyć soboty i niedziele z dostępnych opcji. Czy można to zrobić? Jeśli tak to jak?
Istnieje beforeShowDay
opcja, która wywołuje funkcję dla każdej daty, zwracając wartość true, jeśli data jest dozwolona, lub false, jeśli nie jest. Z dokumentów:
beforeShowDay
Funkcja przyjmuje datę jako parametr i musi zwrócić tablicę z [0] równą prawda / fałsz wskazującą, czy tę datę można wybrać i 1 równą nazwie klasy CSS lub '' dla domyślnej prezentacji. Jest wywoływany na każdy dzień w datepicker, zanim zostanie wyświetlony.
Wyświetl niektóre święta narodowe w datowniku.
$(".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, ''];
}
Istnieje jedna wbudowana funkcja o nazwie noWeekends, która uniemożliwia wybór dni weekendowych.
$(".selector").datepicker({ beforeShowDay: $.datepicker.noWeekends })
Aby połączyć oba, możesz zrobić coś takiego (przyjmując nationalDays
funkcję z góry):
$(".selector").datepicker({ beforeShowDay: noWeekendsOrHolidays})
function noWeekendsOrHolidays(date) {
var noWeekend = $.datepicker.noWeekends(date);
if (noWeekend[0]) {
return nationalDays(date);
} else {
return noWeekend;
}
}
Aktualizacja : należy pamiętać, że od jQuery UI 1.8.19 opcja beforeShowDay akceptuje również opcjonalny trzeci parametr, wyskakującą etykietkę narzędzia
Uncaught TypeError: Cannot read property 'noWeekends' of undefined
funkcja dni narodowych działa zgodnie z oczekiwaniamiJeśli nie chcesz, aby weekendy się pojawiały, po prostu:
CSS
źródło
td.ui-datepicker-week-end { visibility: hidden; }
Te odpowiedzi były bardzo pomocne. Dziękuję Ci.
Mój wkład poniżej dodaje tablicę, w której wiele dni może zwrócić wartość false (jesteśmy zamknięci w każdy wtorek, środę i czwartek). Dołączyłem określone daty plus lata i funkcje bez weekendów.
Jeśli chcesz mieć wolne weekendy, dodaj [sobotę], [niedzielę] do tablicy closedDays.
źródło
Datepicker ma wbudowaną tę funkcję!
http://api.jqueryui.com/datepicker/#utility-noWeekends
źródło
Rozwiązanie, które wszyscy lubią, wydaje się bardzo intensywne ... osobiście uważam, że o wiele łatwiej jest zrobić coś takiego:
W ten sposób twoje daty są czytelne dla ludzi. To nie jest tak różne, to ma dla mnie więcej sensu.
źródło
Ta wersja kodu zmusi cię do pobrania dat świątecznych z bazy danych SQL i dezaktywuje określoną datę w Datepicker interfejsu użytkownika
Utwórz bazę danych w sql i ustaw daty wakacji w formacie MM / DD / RRRR jako Varchar Umieść poniższą zawartość w pliku getdate.php
Happy Coding !!!! :-)
źródło
Możesz użyć funkcji noWeekends, aby wyłączyć wybór weekendu
źródło
źródło
W tej wersji miesiąc, dzień i rok określają, które dni mają być blokowane w kalendarzu.
źródło
w dni wyłączone możesz zrobić coś takiego.
<input type="text" class="form-control datepicker" data-disabled-days="1,3">
gdzie 1 to poniedziałek, a 3 to środaźródło
W najnowszej wersji Bootstrap 3 (bootstrap-datepicker.js)
beforeShowDay
oczekuje wyniku w tym formacie:Alternatywnie, jeśli nie obchodzi Cię CSS i podpowiedź, po prostu zwróć wartość logiczną,
false
aby uniemożliwić wybór daty.Ponadto nie ma
$.datepicker.noWeekends
, więc musisz zrobić coś zgodnie z tym:źródło
W sobotę i niedzielę możesz zrobić coś takiego
źródło