Календарь PrimeFaces принимает неверные даты в качестве входных данных
У меня проблема с календарем PrimesFaces 3.4.1. При использовании всплывающего окна выбора даты, активированного либо с помощью кнопки, либо с помощью фокуса поля ввода, вы можете выбрать только действительные даты, которые работают отлично, счастливые дни!
Проблемы возникают, когда вы вручную добавляете дату в поле ввода, если вы добавляете недопустимую дату, компонент календаря PrimeFaces делает наилучший выбор - преобразовать ее в допустимую дату и затем отправить ее, что означает, что внутренняя проверка не требуется , Некоторые интересные переводы ниже:
30.02.2012 становится 06.02.2014322/05/2012 становится 5/10/203814.01.2012 становится 1.04.2012Чтобы воссоздать это безумие, взгляните наPrimeFaces Календарь Витрина.
Я видел решение вокруг с помощьюreadOnlyInput='true'
атрибут, но это только кажется, что не позволяет вводить буквы в поле, а не число или косую черту. Ниже приведен один пример реализованного мною календаря:
<p:calendar id="fldDateOfBirth"
value="#{pc_CreateUser.user.dateOfBirth}"
binding="#{pc_CreateUser.dobComp}"
navigator="true"
pattern="dd/MM/yyyy"
maxlength="10"
yearRange="-100"
validator="#{pc_CreateUser.validateDOB}"
title="#{msg.user_date_format_default_tip}"
converterMessage="#{msg.user_error_dob_invalid}"
readOnlyInput="true"
showOn="button" />
Решение мудро, я открыт для любых предложений:
Это распространенные проблемы в PrimeFaces? Есть ли уловка, которую я могу использовать, чтобы исправить это?Могу ли я использовать JavaScript для проверки даты перед ее отправкой или для полной блокировки всего пользовательского ввода?Что-нибудь еще, о чем я не думал!Заранее спасибо, это вызывает у меня проблемы в течение нескольких недель!