76 votes

jQuery datepicker pour empêcher la date passée

Comment désactiver les dates passées dans l'afficheur de dates de jQuery ? J'ai cherché des options mais je n'ai rien trouvé qui indique la possibilité de désactiver les dates passées.

MISE À JOUR : Merci à vous tous pour votre réponse rapide. J'ai essayé sans succès. Les jours ne sont toujours pas grisés comme je m'y attendais et acceptent toujours la date passée sélectionnée.

J'ai essayé ça :

$('#datepicker').datepicker({ minDate: '0' });

Ça ne marche pas.

J'ai essayé ça :

$('#datepicker').datepicker({ minDate: new Date() });

Ça ne marche toujours pas non plus.

Il affiche le widget du calendrier sans problème. Il ne peut simplement pas griser ou empêcher la saisie des jours passés. J'ai essayé d'utiliser les paramètres minDate et maxDate dans le passé, sans succès, alors je me suis dit que ce n'était pas eux.

140voto

Khawar Points 741

Essayez ça :

$("#datepicker").datepicker({ minDate: 0 });

Retirez les guillemets de 0 .

4 votes

@BWDesign a répondu un an et demi plus tard que moi ;)

0 votes

Vous me sauvez mon ami.

37voto

Russ Cam Points 58168

Il vous suffit de spécifier une date minimale - en la fixant à 0, la date minimale est de 0 jour à partir d'aujourd'hui, c'est-à-dire aujourd'hui. Vous pouvez passer la chaîne '0d' à la place (l'unité par défaut est le jour).

$(function () {
    $('#date').datepicker({ minDate: 0 });
});

26voto

Noel Abrahams Points 3678

Si vous avez affaire à un sélecteur de date précédemment lié, le réglage de l'option

$("#datepicker").datepicker({ minDate: 0 });

ne fonctionnera pas. Cette syntaxe n'est applicable que lorsque vous créez le widget.

Pour définir une date minimale pour un sélecteur de date lié, procédez comme suit :

$("#datePicker").datepicker("option", "minDate", 0);

1 votes

Merci. J'ai perdu beaucoup de temps à trouver cette solution et cela a résolu mon problème.

24voto

indie blue Points 1309

J'étais confronté au même problème. J'ai supprimé les guillemets entourant le 0 et ajouté une virgule après le 0, et maintenant ça marche !

$('#datepicker').datepicker({ minDate: 0 });

1 votes

Une explication sur la raison pour laquelle la virgule est nécessaire ? Je peux la supprimer et tout fonctionne encore correctement. Existe-t-il un navigateur qui exige une virgule pour un objet à propriété unique ?

0 votes

Vous n'avez besoin de virgules que si vous utilisez plusieurs options, par ex. $('#datepicker').datepicker({ minDate: 0, maxDate: "+1M +10D", dateFormat: 'yy-mm-dd' }); Vous n'avez pas besoin d'une virgule après la dernière option.

1 votes

Vous envoyez un objet à la méthode. une virgule sur la dernière valeur est inappropriée.

15voto

Bill Points 1556

Utilisez l'option minDate pour définir la date minimale possible. http://jqueryui.com/demos/datepicker/#option-minDate

2 votes

+1 : J'ai utilisé minDate et maxDate pour définir un intervalle de date valide et cela fonctionne comme un charme.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X