7
votes

Comment désactiver les dates avant aujourd'hui dans JQuery DatePicker

Comment puis-je désactiver les dates avant aujourd'hui dans JQuery DatePicker sans utiliser Mindate: 0 ?

J'aimerais activer la navigation du calendrier selon l'habitude avant aujourd'hui tout en veillant à ce que l'utilisateur ne choisisse pas les dates avant aujourd'hui.

(C'est-à-dire que la date d'aujourd'hui est de 11AUG11 et j'aimerais toutes les dates avant que cela désactivait mais permettant toujours à l'utilisateur d'aller aux mois précédents, etc.)


2 commentaires

D'une perspective UX, pourquoi voudriez-vous qu'ils puissent voir les valeurs sans pouvoir Sélectionner les valeurs?


Merci gars, je suis d'accord, il semble que cela semble redondant, mais je construisais un site Web qui permet au client d'organiser des réunions / des événements. Il pourrait être plus pratique que le client puisse répondre aux dates précédentes sur le même calendrier au cas où.


6 Réponses :


1
votes

Il ne semble pas être configurable. Chez Ligne 1434 de jquery.ui.datePicker .js , si un maxdate est spécifié, il définit une variable MAXDRAW et attire jusqu'au mois de cette date, sans égard à d'autres indicateurs. < / p>

Mais je suis également d'accord avec Zzzzbov. Pourquoi l'utilisateur doit-il voir des valeurs qu'ils ne peuvent pas sélectionner?


0 commentaires

6
votes

Si j'accepte que c'est un comportement étrange, vous pourrez peut-être simuler la simulation en utilisant le OnSélectionnez CODE> événement de DatePicker.

$(document).ready(function() {
    $('#Date').datepicker({
        onSelect: function(dateText, inst) {
            //Get today's date at midnight
            var today = new Date();
            today = Date.parse(today.getMonth()+1+'/'+today.getDate()+'/'+today.getFullYear());
            //Get the selected date (also at midnight)
            var selDate = Date.parse(dateText);

            if(selDate < today) {
                //If the selected date was before today, continue to show the datepicker
                $('#Date').val('');
                $(inst).datepicker('show');
            }
        }
    });
});


0 commentaires

2
votes

J'espère que cela est toujours utile à quelqu'un. Ma solution consiste à placer des chèques sur des dates individuelles telles que ceci: xxx

Je trouve cela simple et élégant


0 commentaires

1
votes

à la place, vous pouvez écrire une fonction dans votre fichier .js comme celui-ci- xxx

ici "DateToSelect" est l'ID du champ où la date est affichée. La vérification de la durée de la date n'est pas obligatoire.


0 commentaires

2
votes

La solution la plus simple pourrait ...

<script type="text/javascript">$('#date').datepicker({ minDate: 0 });</script>


0 commentaires

0
votes

Vous pouvez simplement écrire comme ceci xxx


0 commentaires