Календарь 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 для проверки даты перед ее отправкой или для полной блокировки всего пользовательского ввода?Что-нибудь еще, о чем я не думал!

Заранее спасибо, это вызывает у меня проблемы в течение нескольких недель!

Ответы на вопрос(2)

Ваш ответ на вопрос