IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Exclure des jours et des dates du calendrier datepicker [UI]


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Février 2010
    Messages : 133
    Par défaut Exclure des jours et des dates du calendrier datepicker
    Bonjour le forum !!
    après plusieurs semaines de tests et de recherches sur le web, je n'arrive pas à
    exclure des dates et des jours de mon calendrier avec datepicker.

    Voilà le script qui marche et qui exclut bien les jours du lundi au jeudi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    <script>
    $(function() {
        $( "#datepicker" ).datepicker({
    	monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre'],
    			   monthNamesShort: ['Jan','Fév','Mar','Avr','Mai','Jun','Jul','Aoû','Sep','Oct','Nov','Déc'],
                   dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
                   dayNamesMin: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'],
                   dayNamesShort: ['Di','Lu','Ma','Me','Je','Ve','Sa'],
    	            	 maxDate: "+2m", 
    				  minDate: "0m", 
    				firstDay:1,	
    	dateFormat: 'yy-mm-dd',	
          altField: "#alternate",
          altFormat: "DD",
    	   beforeShowDay : function (date) {
                      var dayOfWeek = date.getDay ();
                      if (dayOfWeek == 1 ||dayOfWeek == 2 || dayOfWeek == 3 || dayOfWeek == 4) return [false];
                      else return [true];
     
                   }
        });
      });
      </script>
    Maintenant je voudrais exclure les date des jours non ouverts comme par exemple les jours fériés ,paques ...

    et faire la fusion des deux codes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    natDays = [
            [5, 1], [5, 08], [5, 13], [5, 23], 
        ];
     
        function nationalDays(date) {
            for (i = 0; i < natDays.length; i++) {
                if (date.getMonth() == natDays[i][0] - 1
                && date.getDate() == natDays[i][1]) {
                    return [false, natDays[i][2] + '_day'];
                }
            }
            return [true, ''];
        }
    Merci d'avance pour votre aide.

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 681
    Par défaut
    si la fonction "nationalDays" fonctionne bien, faites juste else return nationalDays(date);

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Février 2010
    Messages : 133
    Par défaut
    Bonsoir Mathieu
    Merci pour votre réponse rapide.
    Le code nationalDays a été récupéré sur un forum.
    Comme je suis une nullité , je ne vois pas où placer le
    else return de votre réponse.
    Comment fusionner les 2 codes?
    Merci pour votre aide.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Février 2010
    Messages : 133
    Par défaut
    Bonjour
    le sujet est résolu.
    Merci

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Février 2010
    Messages : 133
    Par défaut
    Bonjour
    toutes mes excuses, j'ai mis le sujet résolu, mais je n'ai pas donné la solution.

    formulaire
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <p>	Datec : <input type="text" id="datepicker" name="datec" size="8" required value="<?php if(isset($_POST['datec'])){echo $_POST['datec'];} ?>" >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    Jour Semaine: <input type="text" id="alternate" size="8"></p>

    HTML et CSS
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
     <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
      <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
     
      <script src="i18n/datepicker-fr.js"></script>    
    <script type="text/javascript" src="ui.datepicker.js"></script>
    <script type="text/javascript" src="ui.datepicker-fr.js"></script>
    <style>
    .ui-datepicker-unselectable.ui-state-disabled span.ui-state-default
    {
        background-color: Red;
        background-image: none;
        color: White;
    }
    .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default {
        color: black;
        background: lightgreen;
            text-align: center;
            font-weight: Bold;
    }
    .ui-datepicker { 
    font-size : 1.1em ! important;
    font-weight: bold;
     }
    </style>

    DATEPICKER
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    <script>
     //Disable Arrays
        var disableDays = [2,3,4], //ma, me, je
            disableDates = ["01-01-2022", "04-04-2021", "05-04-2021", "01-05-2021","08-05-2021", "13-05-2021", "23-05-2021", "24-05-2021", "14-07-2021", "15-08-2021", "01-11-2021", "11-11-2021", "25-12-2021",] //dd-mm-yy
    //                                                      PAQUES    Lundi PAQUES   Fete Travail      armistice           ascension                pentecote         lundi pent                                                                    armistice       
         Noel
     $(function() {   //Create DatePicker
        $("#datepicker").datepicker({
            
            monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre'],
                               monthNamesShort: ['Jan','Fév','Mar','Avr','Mai','Jun','Jul','Aoû','Sep','Oct','Nov','Déc'],
                   dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
                   dayNamesMin: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'],
                   dayNamesShort: ['Di','Lu','Ma','Me','Je','Ve','Sa'],
                             maxDate: "+2m", 
                                      minDate: "0m", 
                                    firstDay:1,     
            dateFormat: 'yy-mm-dd', 
          altField: "#alternate",
          altFormat: "DD",
            beforeShowDay: function(date){
     
                var day = date.getDay(),
                    dmy = $.datepicker.formatDate('dd-mm-yy', date);
     
                //Disable day
                if (disableDays.indexOf(day) != -1){
                    return [false]; 
     
                //Disable date
                } else if (disableDates.indexOf(dmy) != -1){
                    return [false];
     
                //Enable date
                } else {
                    return [true];
                }
            }
        })
    })
      </script>

    J'espère que cela aidera.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 22/04/2010, 10h02
  2. Réponses: 2
    Dernier message: 06/11/2006, 14h35
  3. JSP incrémentation des jours d'une date
    Par taroudant dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 07/08/2006, 10h20
  4. Générer le listing des jours entre deux dates
    Par gsmdu62 dans le forum Langage
    Réponses: 8
    Dernier message: 01/05/2006, 11h08
  5. Réponses: 3
    Dernier message: 27/01/2006, 12h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo