2017-10-02 4 views
1

Je cherche à avoir le jour de départ par défaut à hier et la date de fin par défaut à hier ainsi que pour commencer. C'est la date maximum en tout temps.jQuery Datepicker limite date de fin à une semaine sans passer le jour précédent

Je cherche alors à permettre à la date de fin d'avoir un maximum de 7 jours après la date de début une fois que l'utilisateur a changé la date de début. Comment ferais-je cela?

Le code:

var StrtDate = $('#strtDate').datepicker({ 
    defaultDate: -1, 
    maxDate: -1, 
    onSelect: function (selectedDate) { 
     var date = $(this).datepicker('getDate'); 
     createEndDates.not(this).datepicker('option', 'minDate', date); 
    } 
}); 
$('#strtDate').datepicker('setDate', 'today'); 

var EdDates = $('#edDate').datepicker({ 
    defaultDate: -1, 
    maxDate: -1, 
    onSelect: function (selectedDate) { 
    } 
}); 
$('#edDate').datepicker('setDate', 'today'); 

S'il vous plaît laissez-moi savoir comment vous résoudre ce problème. Merci beaucoup.

+0

Une fois une nouvelle date de début est sélectionnée, vous devez détruire la date de fin datepicker et créer un nouveau pour un nouvel intervalle. Vérifiez ce https://stackoverflow.com/questions/16267903/jquery-datepicker-changing-mindate-and-maxdate-on-the-fly – derloopkat

Répondre

1

Essayez ce code

vous pouvez définir maxDate de $('#edDate') sur la sélection $('#strtDate')

var endDate; 
 
var StrtDate = $('#strtDate').datepicker({ 
 
defaultDate: -1, 
 
maxDate: -1, 
 
onSelect: function (selectedDate) { 
 
\t endDate = $(this).datepicker('getDate'); 
 
\t var final=new Date(endDate); 
 
\t final.setDate(endDate.getDate() + 7); 
 
\t $('#edDate').datepicker('option', 'maxDate',final); 
 
} 
 
}); 
 
$('#strtDate').datepicker('setDate', 'today'); 
 
var EdDates = $('#edDate').datepicker({ 
 
defaultDate: -1, 
 
maxDate: -1, 
 
onSelect: function (selectedDate) { 
 
} 
 
}); 
 
$('#edDate').datepicker('setDate', 'today');
#ui-datepicker-div { font-size: 12px; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
 
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script> 
 
<link rel="stylesheet" type="text/css" media="screen" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css"> 
 
start date: <input type="text" id="strtDate" name="date1"/> <br/> 
 
end date: <input type="text" id="edDate" name="date2"/>

+1

Je pensais que je l'avais fait avant. Ça marche pour moi maintenant. Merci :) – ManOfFaith1

+0

Heureux de vous aider bro:) Happy Coding: :) – Amal

+0

J'ai également ajouté quelques lignes sur le maintien de la limite à un maximum d'hier. J'ai stocké la date d'origine en tant que variable globale puis je m'assure qu'elle ne passe pas ce jour en calculant la différence de date. – ManOfFaith1