I'm using a DateItem with setUseTextField set to true. I'm using European date format which is "dd.MM.yyyy".
That is why I set the date formater at the beginning of my form like this:
Now I also want to use a validator to check the input of the text field, so I created a RegExValidator. But the validator reports an invalid value even if a valid date is entered. I checked the regular expression and it should be fine.
This is my code for the DateItem:
Entering for example "27.10.2010" into the text box or select a date with the calendar, results in the validator claiming the date entered is invalid.
What am I doing wrong here?
That is why I set the date formater at the beginning of my form like this:
Code:
DateDisplayFormatter dateFormater = new DateDisplayFormatter() {
@Override
public String format(Date date) {
if (date == null) return null;
DateTimeFormat dateFormatter = DateTimeFormat.getFormat("dd.MM.yyyy");
return dateFormatter.format(date);
}
};
DateUtil.setShortDateDisplayFormatter(dateFormater);
DateUtil.setDateInputFormatter(new DateInputFormatter()
{
@Override
public Date parse(String dateString) {
final DateTimeFormat dateFormatter = DateTimeFormat.getFormat("dd.MM.yyyy");
Date date = dateFormatter.parse(dateString);
return date;
}
});
This is my code for the DateItem:
Code:
DateItem birthDateDI = new DateItem("birthdate");
birthDateDI.setUseTextField(true);
birthDateDI.setValidators(new RegExpValidator("^(0?[1-9]|[12][0-9]|3[01])\\.(0?[1-9]|1[012])\\.(19|20)\\d\\d$"));
birthDateDI.setValidateOnExit(true);
What am I doing wrong here?
Comment