Comment valider datepicker pour interdire / rejeter certaines dates?

J’ai ce contrôle de calendrier que j’utilise. Un utilisateur peut sélectionner n’importe quelle date du calendrier. Je dois valider les dates comme samedi et dimanche et les 1/1 et 1/25. S’ils sélectionnent ces jours, je dois leur montrer un message Popup si ce n’est pas une date valide.

Essaye ça:

$("input[id^='Date-<%=Model.ID%>']").change(function() { var date = new Date($(this).val()).getDay(); if(date == 0 || date == 6) { alert('weekend'); } }); 

Ceci est mis en place avec un événement change . Votre événement peut être différent.

Il obtient la valeur de l’entrée: $(this).val()

Crée un nouvel object Date : new Date($(this).val())

Ensuite, nous .getDay() numéro du jour: .getDay() qui renvoie une valeur .getDay() entre 0 et 6, 0 étant dimanche et 6 samedi.

Ensuite, vous venez de tester pour 0 ou 6.

Exemple en direct: http://jsfiddle.net/UwcLf/


EDIT: Avec l’aimable autorisation de Nick Craver , vous pouvez désactiver certains jours si vous n’avez pas besoin d’exécuter du code de remplacement pour les sélections de week-end.

De la réponse liée de Nick: Désactiver certains jours de la semaine sur l’interface utilisateur de jQuery datepicker

 $("input[id^='Date-<%=Model.ID%>']").datepicker({ beforeShowDay: function(date) { var day = date.getDay(); return [(day != 0 && day != 6)]; } })​​​​​;​ 

Exemple mis à jour: http://jsfiddle.net/UwcLf/1/

Tableau ajouté pour les jours désactivés: http://jsfiddle.net/UwcLf/3/

Si vous utilisez DatePicker de l’interface utilisateur JQUery, il existe un événement onSelect, vous pouvez l’utiliser pour valider la date sélectionnée.

Je ne connais pas votre back-end, ou si vous en utilisez un, mais vous pouvez toujours envoyer la date sélectionnée à votre serveur via un appel Ajax et déterminer si elle est valide ou non.

Consultez les validateurs personnalisés si vous utilisez ASP.Net.