J'utilise JQuery Date Picker et j'ai le code suivant où lorsque l'utilisateur sélectionne une date, le champ ci-dessous est renseigné avec la date +1
$('#dt2').datepicker({ dateFormat: "dd-M-yy" }); $("#dt1").datepicker( {dateFormat: "dd-M-yy", minDate: 0, onSelect: function(date){ var date2 = $('#dt1').datepicker('getDate'); date2.setDate(date2.getDate()+1); $('#dt2').datepicker('setDate', date2);
3 Réponses :
Réponse géniale.
J'ai créé un jsfiddle pour vous.
Je ne suis pas sûr de 100% si c'est "infaillible", mais pour empêcher les utilisateurs de taper manuellement une date, vous pouvez définir les entrées sur à la MOMENT I Vérifiez la DT2 ONCLOSE et si sa date est inférieure à la date de DT1S, je le corrige.
De plus, si une date est sélectionnée dans DT1, le Mindate de DT2 est défini sur DT1 DATE + 1. P> loadonly code> par exemple
$(document).ready(function () {
$("#dt1").datepicker({
dateFormat: "dd-M-yy",
minDate: 0,
onSelect: function (date) {
var date2 = $('#dt1').datepicker('getDate');
date2.setDate(date2.getDate() + 1);
$('#dt2').datepicker('setDate', date2);
//sets minDate to dt1 date + 1
$('#dt2').datepicker('option', 'minDate', date2);
}
});
$('#dt2').datepicker({
dateFormat: "dd-M-yy",
onClose: function () {
var dt1 = $('#dt1').datepicker('getDate');
var dt2 = $('#dt2').datepicker('getDate');
//check to prevent a user from entering a date below date of dt1
if (dt2 <= dt1) {
var minDate = $('#dt2').datepicker('option', 'minDate');
$('#dt2').datepicker('setDate', minDate);
}
}
});
});
Frais! Toujours heureux d'aider.
+1, c'était exactement ce dont j'avais besoin. Au lieu de votre dernier si dans # dt2 code> J'ai ajouté l'attribut réadonnement à mon élément d'entrée.
@Sirderpington peut-il être fait avec JavaScript? et la date de type d'entrée?
@Ingusgraholskis Je n'ai pas eu de vrai look mais je suppose que cela peut être, oui. La date de type d'entrée n'est pas encore prise en charge par tous les grands navigateurs. Firefox, par exemple, manque de soutien si je suis correct. Donc, vous voudrez peut-être donner à JQuery un aller avoir une solution fiable
Je viens de changer votre code, de sorte que la date de la date de date2 définie automatiquement et si la date1 est supérieure à celle de Date2, il définit Date2 = Date1
$("#dt1").datepicker({ dateFormat: "dd/mm/yy", onSelect: function (date) { var dt1 = $('#dt1').datepicker('getDate'); var dt2 = $('#dt2').datepicker('getDate'); if (dt1 > dt2) { $('#dt2').datepicker('setDate', dt1); } $('#dt2').datepicker('option', 'minDate', dt1); } }); $('#dt2').datepicker({ dateFormat: "dd/mm/yy", minDate: $('#dt1').datepicker('getDate'), onClose: function () { var dt1 = $('#dt1').datepicker('getDate'); var dt2 = $('#dt2').datepicker('getDate'); //check to prevent a user from entering a date below date of dt1 if (dt2 <= dt1) { var minDate = $('#dt2').datepicker('option', 'minDate'); $('#dt2').datepicker('setDate', minDate); } } });
Encore mieux - cela semble être la bonne façon de le faire sans que les utilisateurs agaçants.