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