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 :

Bloquer le choix de date à une intervalle de 28 jours


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 68
    Par défaut Bloquer le choix de date à une intervalle de 28 jours
    Bonjour,

    Je suis en train de customizer un script, tous se passe bien avec la partie php, mais avec le javascript je bloque un peu, je n'ai pas trop de notion. Si quelqu'un pourrais me venir en aide ce serait génial, je suis sûre que ce n'est qu'une petite manipulation.

    Voici ce que je veux faire, j'ai un datepicker de départ et un datepicker d'arrivée, le client peut choisir une date de réservation sans problème, maintenant je veux limiter la réservation à 28 jours, quand je change "maxDate", il me limite cela juste à partir de la date actuel, c'est-à-dire que le client ne peut pas choisir une date ultérieure de départ et être limité à la date d'arrivée 28 jours après, j'espère que je suis compréhensible.

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    function unavailable(date) {
    			ymd = date.getFullYear() + "-" + ("0"+(date.getMonth()+1)).slice(-2) + "-" + ("0"+date.getDate()).slice(-2);
    			day = new Date(ymd).getDay();
    			if ($.inArray(ymd, unavailableDates) < 0 ) {
    				return [true, "enabled", ""];
    			} else {
    				return [false,"disabled","we are closed"];
    			}
    		}
        $("#txtFromDate").datepicker({
            minDate: "+<?php echo $bsiCore->config['conf_booking_start'];?>D",
            maxDate: "+365D",
    		beforeShowDay: unavailable,
            numberOfMonths: 2,
            onSelect: function(selected) {
        	var date = $(this).datepicker('getDate');
             if(date){
                date.setDate(date.getDate());
              }
              $("#txtToDate").datepicker("option","minDate", date)
            }
        });
     
        $("#txtToDate").datepicker({ 
            minDate: 0,
    		beforeShowDay: unavailable,
            maxDate:"+365D",
            numberOfMonths: 2,
            onSelect: function(selected) {
               $("#txtFromDate").datepicker("option","maxDate", selected)
            }
        });  
     $("#datepickerImage").click(function() { 
        $("#txtFromDate").datepicker("show");
      });
     $("#datepickerImage1").click(function() { 
        $("#txtToDate").datepicker("show");
      });
     
      $('#btn_room_search').click(function() { 	
    	  	if($('#pickuploc').val()==0){
    	  		alert('<?php echo mysql_real_escape_string(PICKUP_LOCATION_ALERT);?>');
    	  		return false;	  	
    		}else if($('#dropoffloc').val()==0){
    	  		alert('<?php echo mysql_real_escape_string(DROPOFF_LOCATION_ALERT);?>');
    	  		return false;
    		}else if($('#txtFromDate').val()==""){
    	  		alert('<?php echo mysql_real_escape_string(PLEASE_ENTER_CHECK_IN_DATE_ALERT);?>');
    	  		return false;
    	 	}else if($('#txtToDate').val()==""){
    	  		alert('<?php echo mysql_real_escape_string(PLEASE_ENTER_CHECK_OUT_DATE_ALERT);?>');
    	  		return false;		
    	  	} else {
    	  		return true;
    	 	}	  
    	});	
    });
    Je suppose que vulgairement cela doit être quelque chose du genre :

    if ((date_darrive - date_depart) >= 28 jours){then...}

    en php je devrais pouvoir le faire, mais en javascript je ne sais pas du tous comment m'y prendre.

    Merci en avance pour toute aide.

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonsoir

    Si vous utilisez le UI Datepicker, voir le code source de l'exemple : http://jqueryui.com/demos/datepicker/#min-max

    Pour 28 jours : $( "#datepicker" ).datepicker({ maxDate: "+28D" });

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

Discussions similaires

  1. [AC-2010] Positionner une liste de choix à la date du jour en la déroulant
    Par cyril.bourreau dans le forum IHM
    Réponses: 1
    Dernier message: 10/01/2014, 16h01
  2. Réponses: 8
    Dernier message: 17/07/2013, 12h06
  3. Réponses: 3
    Dernier message: 16/07/2013, 00h48
  4. Réponses: 5
    Dernier message: 25/03/2005, 16h19

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