2012-10-29 6 views
0

Le code suivant a pour but de restreindre la sélection de la date du jour dans datepicker.Limiter la sélection de quelques dates dans jQuery DatePicker

jQuery(function() { 

     var dateModifier = { 
      beforeShowDay: function (dd) { 
       var today = new Date(); 
       if (dd.getDate() === today.getDate()) { 
        return false; 
       } 
       else { 
        return true; 
       } 
      } 
     }; 

     jQuery("#txt1").datepicker(dateModifier); 

    }); 

A cet effet, j'ai passé objet explicity dateModifier, contenant l'événement beforeShowDay. J'ai lu sur doc jQuery que cet événement est déclenché pour toutes les dates indiquées dans le calendrier. Lorsque nous retournons false, dd date serait désactivée.

Cependant, ce code désactive toutes les dates. Qu'est-ce que je rate.

HTML:

<input id="txt1" type="text" name="name" value=" " /> 
+0

Cander <-> Calandre, ce qui est que ??? Merci d'éditer votre question pour aider les futurs utilisateurs dont la recherche de jquery CALENDAR –

Répondre

3
var disabledDays = ["9-21-2010", "9-24-2010", "9-27-2010", "9-28-2010", "9-3-2010", "9-17-2010", "9-2-2010", "9-3-2010", "9-4-2010", "9-5-2010"]; 
function disableAllTheseDays(date) { 
    var m = date.getMonth(), d = date.getDate(), y = date.getFullYear(); 
    for (i = 0; i < disabledDays.length; i++) { 
     if($.inArray((m+1) + '-' + d + '-' + y,disabledDays) != -1) { 
      return [false]; 
     } 
    } 
    return [true]; 
} 

var dateModifier = { 
     beforeShowDay: disableAllTheseDays 
    }; 

    jQuery("#txt1").datepicker(dateModifier); 

Vérifiez here pour un peu plus

+0

Merci, IMO comparant les dates en créant 'Array of dates' pour la date restreinte serait mieux que de comparer des chaînes, comme dans' $ .inArray ((m + 1) + '-' + d + '-' + y, désactivé les jours)! = -1'. Que dis-tu ? – Abhijeet

Questions connexes