Bonjour,
J'ai créer un datepicker pour pouvoir l'utiliser afin de faire des plages de date, donc pour ça je l'appel 2 fois avec la class ".datepicker" que j'ai créer et des id différent "dated" et "datef".
Voici un exemple :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Du <INPUT type=text class=datepicker name=dated id=dated> Au <INPUT type=text class=datepicker name=dated2 id=dated2>
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 $( ".datepicker" ).datepicker({ showOn: "button", buttonText: "Selectionner une date", buttonImage: "/weliteimages/calendrier.gif", buttonImageOnly: true, changeMonth: true, changeYear: true, showWeek: true }); $( ".ui-datepicker" ).css("font-size", "10px"); /* Permet d'eviter de mettre n'importe quel date */ $("#dated").datepicker('option','onSelect',function() { $("#datef").datepicker('option','minDate', new Date($(this).datepicker('getDate').getTime()+86400000) ); }); $("#datef").datepicker('option','onSelect',function() { $("#dated").datepicker('option','maxDate', new Date($(this).datepicker('getDate').getTime()-86400000) ); });
Voilà en gros le résultat donne ça :
En gros cela permet d'éviter de mettre n'importe quel date pour la plage de date.
Cependant quand je souhaite faire une deuxième plage sur la même page il me suffit simplement de dupliquer le code avec les nouveaux id. Mais dupliquer j'aime pas et ce que je souhaite faire c'est ça :
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 $("#dated, #dated2, #dated3").datepicker('option','onSelect',function() { $("#datef, #datef2, #datef3").datepicker('option','minDate', new Date($(this).datepicker('getDate').getTime()+86400000) ); }); $("#datef, #datef2, #datef3").datepicker('option','onSelect',function() { $("#dated, #dated2, #dated3").datepicker('option','maxDate', new Date($(this).datepicker('getDate').getTime()-86400000) ); });
Mais sa ne marche pas, enfin pas correctement. En gros la contrainte n'arrive pas à clairement différencier les 3 plages (dated/datef, dated2/datef2 et dated3/datef3) sans les mélanger.
Donc comme on peut le voir le premier datepicker de la deuxième plage à la contrainte du deuxième datepicker de la première plage.
Je suppose que sa doit être tout bêtement par rapport au sélecteur css mais je vois pas comment,
Si vous avez une idée je suis preneur
Partager