Bonjour,
Dans un formulaire, j'ai 2 champs de type datefield pour sélectionner une date de début et une date de fin de période.
Je défini d'abord un type daterange pour lier les 2 champs :
ensuite, j'ai un FieldSet avec mes 2 champs:
Code : 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
23
24
25
26
27
28 Ext.apply(Ext.form.VTypes, { daterange : function(val, field) { var date = field.parseDate(val); if(!date){ return false; } if (field.startDateField) { var start = Ext.getCmp(field.startDateField); if (!start.maxValue || (date.getTime() != start.maxValue.getTime())) { start.setMaxValue(date); start.validate(); } } else if (field.endDateField) { var end = Ext.getCmp(field.endDateField); if (!end.minValue || (date.getTime() != end.minValue.getTime())) { end.setMinValue(date); end.validate(); } } // Always return true since we're only using this vtype to set the // min/max allowed values (these are tested for after the vtype test) return true; } });
Le problème, c'est quand je sélectionne une date : je clique sur l'icône calendrier du controle datefiled, ça m'ouvre un calendrier, je sélectionne ma date, mais après dans le champ, ça m'affiche le mois suivant.
Code : 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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 var fsetPeriode = new Ext.form.FieldSet({ xtype: 'fieldset' ,title: 'Période' ,autoWidth: true ,layout: 'column' ,defaults:{ layout: 'form' ,xtype: 'panel' } ,items:[{ columnWidth: 0.5, items:[new Ext.form.DateField({ fieldLabel: 'Date de début', name: 'dd', id: 'dd', allowBlank: false, format: 'd/m/Y', //cf. http://www.lib.virginia.edu/scripts/yui_ext-1.0.1/docs/output/Date.html#parseDate vtype: 'daterange', endDateField: 'df' // id of the end date field }), new Ext.form.DateField({ fieldLabel: 'Date de fin', name: 'df', id: 'df', allowBlank: false, format: 'd/m/Y', //value: Date.today(), vtype: 'daterange', startDateField: 'dd' // id of the start date field }) ] } ,{ columnWidth: 0.5 ,items: [predefinedPeriods] } ] });
exemple : je sélectionne 18 avril 2011, ça m'affiche 18/05/2011.
est-ce un bug ou un mauvais paramétrage du contrôle datefield?
Merci,
Nico
Partager