2013-03-11 8 views
1

J'ai essayé de faire mieux mon datpicker, mais j'ai seulement réussi à activer (d'abord j'ai désactivé tous) les lundi et jeudi, mais maintenant j'ai un problème avec des dates spécifiques. J'ai essayé beaucoup de possibilités, mais soit je choisis le 21e chaque mois, soit je ne travaille pas du tout.jQuery Datepicker - sélectionner seulement quelques jours

Maintenant Im essayant de permettre à cette date (2013,04,21) (et plus tard peut-être plus d'entre eux)

$('#vfb-datum-75').datepicker({ 
       beforeShowDay: settings, 
    }); 

    function settings(date) { 
     if (date.getDay() == 1)  
      { return [true, "","Works"]; 
     } else if (date.getDay() == 4) 
      { return [true, "","Works"]; 
     } else if (date.getDate() == (2013,04,21)) <-- this doesn't work 
      { return [true, "","Works"]; 
     } else { return [false,"",""]; 
    }} 

grâce à l'aide.

+0

Nous aurons besoin d'un peu plus d'informations pour comprendre cela. –

+0

Voulez-vous activer certaines dates, désactiver certaines dates? Quel est ton objectif? –

Répondre

2

http://jsfiddle.net/f7kAc/

Vous pouvez comparer l'année, le jour et le mois. Rappelez-vous que le mois est basé sur zéro.

date.getDate() == 21 && date.getMonth() == 3 && date.getFullYear() == 2013 

http://jsfiddle.net/f7kAc/1/

Vous pouvez campare la date à une autre date en utilisant cette méthode aussi.

date - new Date(2013, 3, 21) == 0 

MAIS, si vous allez développer cette fonction pour avoir plus de 50 dates spéciales, vous voudrez peut-être quelque chose d'un peu souplement et plus facile à configurer.

var specialDays = 
{2013 : 
    { 
     3 : 
      { 
       21 : [true, "", "WORKS"] 
      }, 
     4 : 
      { 
       15 : [true, "", "WORKS"], 
       17 : [true, "", "WORKS"] 
      }, 
    }, 
}; 

Ensuite, dans votre fonction:

... else if (!!specialDays[date.getYear()] && !!specialDays[date.getYear()][date.getMonth()] && !!specialDays[date.getYear()][date.getMonth()][date.getDate()]) { 
    return specialDays[date.getYear()][date.getMonth()][date.getDate()]; 
} 
+0

Merci beaucoup pour toutes ces solutions;) –

Questions connexes