32 votes

la modification de l'option minDate dans JQuery DatePicker ne fonctionne pas

J'ai déclaré une instance de sélecteur de dates comme suit:

     $("#datePickerId").datepicker(
    { dateFormat: 'DD, d MM yy',
      minDate: 0,
      showOn: 'button',
      buttonImage: '../../images/calendar.gif',
      buttonImageOnly: true,
      hideIfNoPrevNext: true
    }
   );
 

Je veux maintenant passer à l'option minDate donc je fais ceci:

 $('#datePickerId').datepicker('option', 'minDate', 3);
 

Mais rien ne se passe. Étais-je supposé faire autre chose? Quelles autres causes possibles pourrait-il y avoir?

65voto

Duncanmoo Points 622

Comment modifier dynamiquement la minDate (après init)

Les réponses ci-dessus, la manière de définir la valeur par défaut minDate à l'init, mais la question était de savoir réellement comment modifier dynamiquement la minDate, ci-dessous j'ai également préciser la Façon de définir la valeur par défaut minDate.

Tout ce qui n'allait pas avec la question de départ était que le minDate valeur définie devrait y avoir une chaîne de caractères (n'oubliez pas les guillemets):

$('#datePickerId').datepicker('option', 'minDate', '3');

minDate accepte également un objet de date et d'un usage commun est d'avoir une date de fin, vous êtes à essayer de calculer quelque chose comme cela pourrait être utile:

$('#datePickerId').datepicker(
    'option', 'minDate', new Date($(".datePop.start").val())
);

Comment définir la valeur par défaut minDate (à l'initialisation)

Juste pour répondre à ce pour les meilleures pratiques; la minDate option attend un de:

  1. une chaîne de caractères dans le courant dateFormat OU
  2. nombre de jours à partir d'aujourd'hui (par exemple, +7) OU
  3. chaîne de valeur et la durée ("y" pendant des années, " m " pendant des mois, 'w' pour semaines, 'd' pour les jours, par exemple '-1y -1m)

@bogart réglage de la chaîne "0" est une solution qu'il répond à l'option 2 ci-dessus

$('#datePickerId').datepicker('minDate': '3');

jQuery UI docs pour minDate

23voto

Nikola K. Points 311

Utilisez minDate comme chaîne:

 $('#datePickerId').datepicker({minDate: '0'});
 

Cela définirait aujourd'hui comme date minimale sélectionnable.

2voto

SKR Points 98

Disons que nous avons deux champs de sélection de date, champ1 et champ2. la date du champ 2 dépend du champ 1

 $('#field2').datepicker();
$('#field1').datepicker({
  onSelect: function(dateText, inst) {
    $('#field2').val("");
    $('#field2').datepicker("option", "minDate", new Date(dateText));
  }
});
 

1voto

koala Points 11

Le mois commence à 0. 0 = janvier, 1 = février, 2 = mars, ..., 11 = décembre.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X