Wicket Date Field Validation
Hi, I am working on date fields and have problems with the validation. I have referred to the link below which helped me. http://www.nabble.com/Strict-4-digit-year-for-DateTextField--td18656889. html So I have subclassed the PatternDateConverter and have set the pattern as, dateFormat = ^(\\d{1,2})/(\\d{1,2})/(\\d{4})$; I have 2 date fields, start_date and end_date. The start_date is a required field and the end_date is not. some code pdc = new StrictPatternDateConverter(DateUtil.getDateFormatOnLocale(getLocale()), false); more code startDateField = DateTextField.withConverter(startDate, new PropertyModel(this, startDate), pdc); startDateField.add(new TMPDatePicker()); form.add(startDateField); endDateField = DateTextField.withConverter(endDate, new PropertyModel(this, endDate), pdc); endDateField.add(new TMPDatePicker()); form.add(endDateField); more code This works fine ie it does not allow entry of 03/03/09 or 03/03/-2009 BUT, the end_date becomes a required field. I have to enter the end_date to click 'Save'. Else it complains that an invalid date has been entered. But my end_date is not a required field. So if I replace it with, endDateField = DateTextField.forDatePattern(endDate, DateUtil.getDateFormatOnLocale(getLocale())); endDateField.withConverter(endDate, pdc); endDateField.add(new TMPDatePicker()); It allows, 03/03/-2009 and 03/03/09. Why does it allow the '-' sign. It computes it to a value and displays a year. My application has several date fields and I need to validate them. I am a newbie to Wicket and have looked up the archive quite a bit to find a solution. Can someone please tell me a solution to my date validation problem? Thanks very much
Re: Wicket Date Field Validation
Rao Archana (HCTM/ETA) wrote: Hi, I am working on date fields and have problems with the validation. I have referred to the link below which helped me. http://www.nabble.com/Strict-4-digit-year-for-DateTextField--td18656889. html So I have subclassed the PatternDateConverter and have set the pattern as, dateFormat = ^(\\d{1,2})/(\\d{1,2})/(\\d{4})$; I have 2 date fields, start_date and end_date. The start_date is a required field and the end_date is not. (...) This works fine ie it does not allow entry of 03/03/09 or 03/03/-2009 BUT, the end_date becomes a required field. I have to enter the end_date to click 'Save'. Else it complains that an invalid date has been entered. But my end_date is not a required field. (...) Possibly the simplest approach would be to use a regular expression that allows an empty string like making the whole expression optional by surrounding it with paranthesis and adding the optional operator '?' after it. This allows the empty string OR a valid date but nothing else: dateFormat = ^((\\d{1,2})/(\\d{1,2})/(\\d{4}))?$; Matt -- matthias.kel...@ergon.ch +41 44 268 83 98 Ergon Informatik AG, Kleinstrasse 15, CH-8008 Zürich http://www.ergon.ch __ e r g o nsmart people - smart software smime.p7s Description: S/MIME Cryptographic Signature
Re: Wicket Date Field Validation
Hi Matt, yay!! It works!! Thank you very much! Matthias Keller wrote: Rao Archana (HCTM/ETA) wrote: Hi, I am working on date fields and have problems with the validation. I have referred to the link below which helped me. http://www.nabble.com/Strict-4-digit-year-for-DateTextField--td18656889. html So I have subclassed the PatternDateConverter and have set the pattern as, dateFormat = ^(\\d{1,2})/(\\d{1,2})/(\\d{4})$; I have 2 date fields, start_date and end_date. The start_date is a required field and the end_date is not. (...) This works fine ie it does not allow entry of 03/03/09 or 03/03/-2009 BUT, the end_date becomes a required field. I have to enter the end_date to click 'Save'. Else it complains that an invalid date has been entered. But my end_date is not a required field. (...) Possibly the simplest approach would be to use a regular expression that allows an empty string like making the whole expression optional by surrounding it with paranthesis and adding the optional operator '?' after it. This allows the empty string OR a valid date but nothing else: dateFormat = ^((\\d{1,2})/(\\d{1,2})/(\\d{4}))?$; Matt -- matthias.kel...@ergon.ch +41 44 268 83 98 Ergon Informatik AG, Kleinstrasse 15, CH-8008 Zürich http://www.ergon.ch __ e r g o nsmart people - smart software -- View this message in context: http://www.nabble.com/Wicket-Date-Field-Validation-tp24087119p24099701.html Sent from the Wicket - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Wicket Date Field Validation
Hi, I am working on date fields and have problems with the validation. I have referred to the link below which helped me. http://www.nabble.com/Strict-4-digit-year-for-DateTextField--td18656889. html So I have subclassed the PatternDateConverter and have set the pattern as, dateFormat = ^(\\d{1,2})/(\\d{1,2})/(\\d{4})$; I have 2 date fields, start_date and end_date. The start_date is a required field and the end_date is not. some code pdc = new StrictPatternDateConverter(DateUtil.getDateFormatOnLocale(getLocale()), false); more code startDateField = DateTextField.withConverter(startDate, new PropertyModel(this, startDate), pdc); startDateField.add(new TMPDatePicker()); form.add(startDateField); endDateField = DateTextField.withConverter(endDate, new PropertyModel(this, endDate), pdc); endDateField.add(new TMPDatePicker()); form.add(endDateField); more code This works fine ie it does not allow entry of 03/03/09 or 03/03/-2009 BUT, the end_date becomes a required field. I have to enter the end_date to click 'Save'. Else it complains that an invalid date has been entered. But my end_date is not a required field. So if I replace it with, endDateField = DateTextField.forDatePattern(endDate, DateUtil.getDateFormatOnLocale(getLocale())); endDateField.withConverter(endDate, pdc); endDateField.add(new TMPDatePicker()); It allows, 03/03/-2009 and 03/03/09. Why does it allow the '-' sign. It computes it to a value and displays a year. My application has several date fields and I need to validate them. I am a newbie to Wicket and have looked up the archive quite a bit to find a solution. Can someone please tell me a solution to my date validation problem? Thanks very much