2010-06-07 6 views
0

J'ai ce contrôle de calendrier que j'utilise. Un utilisateur peut sélectionner n'importe quelle date dans le calendrier. J'ai besoin de valider les dates comme samedi et dimanche et 1/1 et 1/25. S'ils sélectionnent ces jours, je dois leur montrer un message contextuel si ce n'est pas une date valide.Comment valider datepicker pour interdire/refuser certaines dates?

+0

"comment valider" est un très mauvais titre de question. S'il vous plaît améliorer. –

+0

Changement de titre pour le _ _ Comment valider datepicker pour interdire/refuser certaines dates? _ – smci

Répondre

5

Essayez ceci:

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

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

Il s'est la valeur de l'entrée: $(this).val()

Crée un nouvel objet Date de celui-ci: new Date($(this).val())

obtient alors le numéro du jour: .getDay() qui retourne une valeur de 0 à 6 0 étant dimanche et 6 étant samedi.

Ensuite, vous tester juste pour 0 ou 6.

Un exemple concret: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 un autre code pour les sélections du week-end.

De la réponse liée Nick: Disable specific days of the week on jQuery UI datepicker

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

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

tableau Ajouté pour les jours handicapés:http://jsfiddle.net/UwcLf/3/

+0

+1 - Je combinerais cela avec les désactiver dans le datepicker lui-même, n'hésitez pas à inclure ce code dans votre réponse: http://stackoverflow.com/questions/2968414/#2973696 –

+0

@Nick - Merci, je vais inclure votre code. +1 sur votre réponse liée : o) – user113716

+0

Merci Nick, mais comment valider 1/1 et 1/25 chaque année? – kumar

1

Si vous utilisez la DatePicker JQuery UI, il a 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.

Jetez un oeil à Custom Validators si vous utilisez ASP.Net.

Questions connexes