JSF検証の特定のユースケースがあります。たとえば、次のinputText
フィールドがあります。
<p:inputText id="input" required="#{myBean.required}" value="#{myBean.value}" maxlength="20" disabled="#{myBean.disabled}">
<p:ajax event="blur" process="@this" update="name" listener="#{myBean.listener}"/>
</p:inputText>
入力の値は数値です (これは複合コンポーネントの一部であるため、場合によっては文字列になることもありますが、これが数値であると想定した方が問題はより適切に説明されます)。この入力はフォームの一部であり、フォームの最後に送信ボタンがあります。
<p:commandButton value="Save" actionListener="#{myBean.save}"/>
私のリクエストは何ですか:
- 送信ボタンが押されると、すべての検証が処理され、これで問題ありません。これは正常に機能します。
- フィールドが空でない場合に入力フィールドでぼかしイベントが発生すると、数値の検証を処理する必要があり、これも問題ありません。最後に
name
、いくつかの値を持つ id でフィールドを更新します。 - 今、私は問題を抱えています。私の 3 番目の要求は、入力が空の場合、入力の検証を処理すべきではありません。これは、 id でフィールドをクリアする特殊なケース
name
です。これは、入力に既に入力されているテキストを削除し、コンポーネントからフォーカスを削除する場合 (たとえば TAB を押す) の場合にも当てはまります。その場合、AJAX 要求も処理する必要があり、名前の入力もクリアされます。
この入力フィールドが空の場合、この ajax イベントに対してのみ、この入力フィールドの検証を無効にするにはどうすればよいですか?