Wie kann ich überprüfen Ext.form.DateField mit min - /maxwert, ohne Zeit?
Ich habe Folgendes problem: ich möchte überprüfen einer DateField-so, dass es einen Wert hat, der zwischen minValue /maxValue-Bereich. (größer oder gleich, kleiner oder gleich)
Das problem ist, dass ich denke, der Rahmen nimmt sich die Zeit, in Millisekunden.
Habe ich versucht, mit einer benutzerdefinierten vtype wie:
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
});
Im Grunde, was es tut, ist, konvertieren Sie die Werte zu einer " Ymd' - format konvertieren und dann vergleichen Sie die Werte als zahlen.
Wenn ich diese debug-code, der Punkt geht in Ordnung, aber aus irgendeinem Grund habe ich immer noch eine Fehlermeldung erhalten. Ich glaube, der Rahmen wird versuchen, zu validieren, das Feld wieder nach meiner überprüfung.
Danke!
Sebastián
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als die minimale erlaubte Datum. Kann entweder ein Javascript-date-Objekt oder eine Zeichenfolge Datum in einem gültigen format (standardmäßig auf null).
Die maximal erlaubte Datum. Kann entweder ein Javascript-date-Objekt oder eine Zeichenfolge Datum in einem gültigen format (standardmäßig auf null).
und in Fall, dass Sie benötigt werden, zu deaktivieren einige Termine
Einer Reihe von "Daten" zu deaktivieren, die als strings. Diese Zeichenfolgen werden verwendet, um eine dynamische reguläre Ausdrücke, so sind Sie sehr mächtig. Einige Beispiele:
//deaktivieren Sie diese genauen Daten:
//deaktivieren Sie diese Tage für jedes Jahr:
//nur den Anfang (nützlich, wenn Sie kurze Jahre):
//deaktivieren jeden Tag im März 2006:
//deaktivieren jeden Tag in jedem März:
Anstelle fester Termine, die oben erwähnt, verwenden diese: