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?
Draco,
Vous pouvez le faire comme ceci:
$("#datePickerId").datepicker(
{ dateFormat: 'DD, d MM yy',
minDate: new Date(2009, 10 - 1, 25), // it will set minDate from 25 October 2009
showOn: 'button',
buttonImage: '../../images/calendar.gif',
buttonImageOnly: true,
hideIfNoPrevNext: true
}
);
n'oubliez pas d'écrire -1 après le mois (ex. pour juin est -> 6 -1)
Les réponses ci-dessus traitent de la façon de définir la minDate par défaut à l'initialisation, mais la question était en fait de savoir comment modifier dynamiquement la minDate, ci-dessous, je précise également comment définir la minDate par défaut.
Tout ce qui n'allait pas avec la question d'origine était que la valeur minDate en cours de définition aurait dû être une chaîne (n'oubliez pas les guillemets):
$('#datePickerId').datepicker('option', 'minDate', '3');
minDate accepte également un objet date et une utilisation courante consiste à avoir une date de fin que vous essayez de calculer, donc quelque chose comme ça pourrait être utile:
$('#datePickerId').datepicker(
'option', 'minDate', new Date($(".datePop.start").val())
);
Il suffit de répondre à cette question pour les meilleures pratiques; l'option minDate attend l'un des éléments suivants:
@bogart mettre la chaîne à "0" est une solution car elle satisfait l'option 2 ci-dessus
$('#datePickerId').datepicker('minDate': '3');
Utilisez minDate comme chaîne:
$('#datePickerId').datepicker({minDate: '0'});
Cela définirait aujourd'hui comme date minimale sélectionnable.
Changer la minDate dynamiquement
.datepicker("destroy")
Par exemple
<script>
$(function() {
$( "#datepicker" ).datepicker("destroy");
$( "#datepicker" ).datepicker();
});
</script>
<p>Date: <input type="text" id="datepicker" /></p>
Il n'est pas nécessaire de détruire l'instance actuelle, il suffit de l'actualiser.
$('#datepicker')
.datepicker('option', 'minDate', new Date)
.datepicker('refresh');
Supposons que nous ayons 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));
}
});
Le mois commence à partir de 0. 0 = janvier, 1 = février, 2 = mars, ..., 11 = décembre.