Datepicker de Jquery sélectionner plusieurs plages de dates dans un calendrier
Mon exigence est de permettre à l'utilisateur de sélectionner plusieurs plages de dates dans un seul calendrier, également précédentes sélections de date ne devrait pas être autorisé à changer. Comment est-ce possible? Ci-dessous le code et le lien vers violon
HTML
<p>from</p>
<input type="text" class="spromotion-input-inbody spromotion-input-datepick" id="sproid-bookingcondition-datefrom">
<p>to</p>
<input type="text" class="spromotion-input-inbody spromotion-input-datepick" id="sproid-bookingcondition-dateto">
SCRIPT
$( function() {
var dateFormat = "mm/dd/yy",
from = $( "#sproid-bookingcondition-datefrom" )
.datepicker({
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 1
})
.on( "change", function() {
to.datepicker( "option", "minDate", getDate( this ) );
}),
to = $( "#sproid-bookingcondition-dateto" ).datepicker({
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 1
})
.on( "change", function() {
from.datepicker( "option", "maxDate", getDate( this ) );
});
function getDate( element ) {
var date;
try {
date = $.datepicker.parseDate( dateFormat, element.value );
} catch( error ) {
date = null;
}
return date;
}
} );
Où est le problème ici? Qu'entendez-vous par de multiples plages de dates?
par défaut, nous ne pouvez sélectionner une plage de dates, les exigences pour sélectionner plusieurs plages de dates sur un seul calendrier.
par défaut, nous ne pouvez sélectionner une plage de dates, les exigences pour sélectionner plusieurs plages de dates sur un seul calendrier.
OriginalL'auteur Shanaka | 2017-04-18
Vous devez vous connecter pour publier un commentaire.
Malheureusement, ce n'est pas quelque chose que le datepicker plugin est capable de faire sortir de la boîte. Vous aurez besoin de JavaScript personnalisé pour permettre cela.
J'ai trouvé une façon qui se rapproche de ce que vous souhaitez à l'aide de la
onSelect
etbeforeShowDay
événements. Il maintient son propre tableau de dates sélectionnées, donc, malheureusement, ne s'intègre pas avec une zone de texte indiquant la date, etc. Je suis juste l'utiliser comme une ligne de contrôle, et je peux alors interroger le tableau des dates choisies.La seule chose que vous auriez besoin de les modifier à propos de ce code est de regroupement tous les deux dates dans les plages, mais il y a plusieurs manières de le faire en fonction de votre choix UX. Personnellement, je voudrais juste le groupe tous les deux dates d'une plage dans l'ordre que l'utilisateur sélectionne. Alors si on ajoute une date à partir de n'importe quelle gamme, la gamme entière est supprimée (qui n'est pas codé ici, vous aurez besoin d'ajouter que).
Voici mon code:
Et voici un violon: http://jsfiddle.net/gydL0epa/
OriginalL'auteur lax1089
Comme d'autres l'a déjà suggéré, mon MultiDatesPicker se rapproche de ce qu'il vous faut. Il permet déjà seule la sélection de la gamme, vous pouvez donc la fourche de ce plugin et de modifier/améliorer, afin de permettre plusieurs plages de sélection.
Un rapide et sale solution serait de commenter la ligne où le tableau de dates sélectionnées est remis.
OriginalL'auteur dubrox
essayer cette
vous pouvez télécharger le fichier js à partir du lien https://sourceforge.net/projects/multidatespickr/
OriginalL'auteur Issac Johnson