jQuery UI Datepicker – n’autorise que certains jours de la semaine

J’utilise jquery UI datepicker sur un projet de grande envergure et je réalise maintenant que je ne devrais autoriser que certains jours de la semaine dans certaines zones. J’ai lu leur documentation et je n’ai rien trouvé à ce sujet. Je sais qu’il existe des scripts datepickers pour jq qui peuvent le faire, mais je ne souhaite pas utiliser de script supplémentaire pour cela si c’est possible. Quelqu’un connaît une solution de contournement pour cela? Peut-être suis-je mal compris quelque chose dans leur documentation?

REMARQUE: exemple de comportement souhaité: http://codeasp.net/blogs/raghav_khunger/microsoft-net/1088/jquery-datepicker-disable-specific-weekdays

Merci d’avance pour l’aide, à la vôtre Pedro

$( ".datepicker.future" ).datepicker('option','beforeShowDay',function(date){ var td = date.getDay(); var ret = [(date.getDay() != 0 && date.getDay() != 6),'',(td != 'Sat' && td != 'Sun')?'':'only on workday']; return ret; }); 

@Jan Thomas a oublié d’append la variable td . Le code correct est:

 $( ".datepicker.future" ).datepicker('option','beforeShowDay',function(date){ var td = date.getDay(); var ret = [(date.getDay() != 0 && date.getDay() != 6),'',(td != 'Sat' && td != 'Sun')?'':'only on workday']; return ret; }); 
 $('selector').datepicker({ beforeShowDay: $.datepicker.noWeekends // disable weekends }); 

De la docs:

beforeShowDay: la fonction prend une date en tant que paramètre et doit renvoyer un tableau avec [0] égal à vrai / faux, indiquant si cette date est sélectionnable ou non, [1] égal à un nom de classe CSS ou ” pour le présentation par défaut, et [2] une info-bulle contextuelle facultative pour cette date. Il est appelé pour chaque jour du sélecteur de date avant qu’il ne soit affiché.

Pour un exemple, s’il vous plaît voir ici:

http://codeasp.net/blogs/raghav_khunger/microsoft-net/1088/jquery-datepicker-disable-specific-weekdays

La réponse de Jean Mallet ( beforeShowDay: $.datepicker.noWeekends ) est simple et élégante.

Toutefois, si vous appelez déjà une fonction à l’aide de beforeShowDay (comme ce fut mon cas dans mon cas), voici comment désactiver certains jours de la semaine (dans ce cas, dimanche et samedi), en chaîne avec le rest de votre fonction:

 beforeShowDay: function (date) { /* your other function code here */ if (date.getDay() > 0 && date.getDay() < 6) { return [true, '']; } else { return [false, '']; } } 

entrez la description de l'image ici