J'ai le problème suivant: Je veux valider un champ DateField afin qu'il ait une valeur entre la plage minValue/maxValue. (supérieur ou égal, inférieur ou égal)Comment puis-je valider Ext.form.DateField en utilisant min/maxValue, sans utiliser le temps?
Le problème est que je pense que le cadre prend le temps en millisecondes.
J'ai essayé d'utiliser un vtype personnalisé tels que:
Ext.apply(Ext.form.VTypes,{
dates: function(val, field){
try{
if(this.disabled){
return true;
}
if(Ext.value(val,null,false)==null){
this.datesText = "This field is required.";
return this.allowBlank; //the text message won't be shown in case blank is allowed.
}
if(Ext.value(field.minValue,null,false)!=null){
if(Ext.util.Format.date(val,"Ymd")<Ext.util.Format.date(field.minValue,"Ymd")){
this.datesText = "The value is invalid.<br/>";
this.datesText = "it must be greater or equal than " + field.minValue;
return false;
}
}
if(Ext.value(field.maxValue,null,false)!=null){
if(Ext.util.Format.date(val,"Ymd")>Ext.util.Format.date(field.maxValue,"Ymd")){
this.datesText = "The value is invalid.<br/>";
this.datesText = "It must be lower or equal than " + field.maxValue;
return false;
}
}
return true;
}catch(e){
return false;
}
},
datesText: 'The value is invalid.', //error message
datesMask:// //regexp to filter the characters allowed
}); Fondamentalement, ce qu'il fait est de convertir les valeurs en un format 'Ymd', puis de comparer les valeurs sous forme de nombres.
Si je débogue ce code, la validation va bien, mais pour une raison quelconque, je reçois toujours un message d'erreur. Je crois que le framework tente de valider à nouveau le champ après ma validation.
Merci!
Sebastián
Hey Antonio, désolé mais je ne veux pas utiliser la propriété disabledDates . Je veux juste que le framework valide mon Field en utilisant des dates au format Ymd, alors que le framework fait ceci:/* if (this.minValue && time
I ' Essayez d'éviter de surcharger la méthode "getErrors" (http://dev.sencha.com/deploy/dev/docs/source/DateField.html#method-Ext.form.DateField-getErrors) et d'utiliser une validation personnalisée. –
avez-vous essayé la propriété validationDelay, la valeur par défaut est 250ms. – Antonio