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 :
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;
	}
});
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
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]
						}
					]
 
			});
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.
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