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 :
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 :
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