私が抱えている問題はPrimesFaces 3.4.1カレンダーにあります。ボタンまたは入力フィールドのフォーカスのいずれかで有効にされたポップアップの日付ピッカーを使用する場合は、うまく動作する有効な日付のみを選択することができます!PrimeFacesカレンダーで無効な日付を入力として受け入れる
入力フィールドに手動で日付を追加するときに問題が発生します。無効な日付を追加した場合、PrimeFacesカレンダーコンポーネントは有効な日付に変換して送信することで最善の推測を行います。つまり、バックエンド検証いいえ。以下のいくつかの興味深い翻訳:
- 30/02/2012は、2014年2月6日
- 322/05/2012となり2038年5月10日
- 2012年1月14日は2012年4月1日になるとなり、
この狂気を再現するには、PrimeFaces Calendar Showcaseをご覧ください。
私はreadOnlyInput='true'
属性を使用して解決策を見ましたが、数字またはスラッシュではないフィールドに文字が入力されないように見えます。以下は、私が実装したカレンダーの1つのインスタンスは、次のとおりです。
<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を使用して日付を確認することも、 はすべてのユーザー入力を完全にブロックすることができますか?
- 私が考えていないものは他にありますか?
これは私に数週間問題を引き起こしています。
の下に以下を追加!ソリューションとあなたの説明をありがとう、非常に感謝します。 – JonnyIrving
ようこそ。 – BalusC
このconvertDateTimeを使用して古いバージョンのprimefaceを使用すると変換がnullになり、JavaScriptエラーが発生します。 (getDate == null) PF4にアップグレードすることができれば残念ですが、私は選択肢を検討することができません:) – VeenarM