2009-12-31 15 views
0

Je crée un formulaire Drupal avec une entrée de calendrier contextuel javascript basée sur la date et l'heure, qui permet aux utilisateurs de définir une date à laquelle ils souhaitent récupérer ou supprimer quelque chose. Cependant, je ne peux pas trouver un moyen de limiter les dates sélectionnables en entrée. Par exemple, si nous sommes seulement ouverts du lundi au mercredi et vendredi, je ne veux pas que les gens puissent utiliser le sélecteur pour indiquer qu'ils veulent un ramassage le dimanche.Tentative de programmation d'une liste noire d'entrées de calendrier Drupal

J'ai regardé loin et bas pour la validation d'entrée de calendrier et un mécanisme de blocage utilisable, mais jusqu'ici aucune chance.

Répondre

1

Drupal utilise le quantième jQuery pour choisir des dates. Je n'ai pas regardé comment le module Date implémente le js, mais vous pouvez probablement ajouter des options supplémentaires. Alternativement, vous pouvez simplement ajouter le datpicker vous-même. Vous pouvez obtenir ce que vous voulez avec le datepicker jQuery assez facilement:

$("#test").datepicker({ 
    beforeShowDay: function(date) { 
     if (date.getDay() % 2 == 1 && date.getDay() < 6) { 
      return [true]; 
     } 
     else { 
      return [false]; 
     } 
    } 
}); 

beforeShowDay est une fonction qui est exécutée pour chaque jour et doit retourner une liste où le premier élément est un booléen qui décide si vous jour est sélectionnable. La deuxième valeur est une classe optionnelle à ajouter et il y en a une troisième qui peut aussi être utilisée, mais je ne peux pas me rappeler de quoi il s'agit en ce moment.

+0

Merci beaucoup Googletorp. Je vais essayer et voir comment ça marche! –

0

Je pense que votre meilleur pari est de trouver le datepicker le plus simple que vous pouvez trouver (car le plus simple est généralement == plus facile à modifier) ​​et juste le coder en dur pour passer les jours que vous ne voulez pas. Cependant, cela ne corrige que le côté JS, donc vous aurez probablement envie d'écrire un petit module personnalisé qui effectue également la validation côté serveur.

+0

Merci! Je vais certainement me rappeler de vérifier la validation côté serveur. Ce sera une expérience grandissante pour mon PHP naissant :) –