2013-08-06 9 views
9

私はp:dialogに必要な入力フィールドを持っています。最初にフィールドに何も入力しなかった場合、そのフィールドで検証エラーが発生します。それから、ダイアログを閉じてもう一度開くと、検証エラーがまだ残っています。ダイアログを閉じるときに検証エラーをなくすにはどうすればよいですか?ダイアログを再オープンすると、ダイアログボックスで検証を消去する方法が失敗する

答えて

1

私はあなたのケースを再現することができました、あなたは次のことを行うことができます:

  • あなたのダイアログclosable="false"を行います。
  • ダイアログを非表示にするCancelボタンを追加します。
  • Cancelボタンの中にPrimefaces ExtensionsのresetInputコンポーネントを追加します。フォームの検証と値がクリアされます。ここで

wvDialogという名前widgetVarとして、あなたのダイアログを想定例です。あなたが必要な場合は

<p:commandButton value="Cancel" immediate="true" onclick="wvDialog.hide()"> 
     <pe:resetInput for="myDialogFormId /> 
    </p:commandButton> 

あなたも、ボタンactionListenerでBeanメソッドを呼び出すことができます。

私はそれが役に立ちそうです。

+1

偉大な答えをありがとう!ボタン右上隅に閉じるボタンが本当に必要です...... – ethanjyx

+0

私のページに 'oncomplete = 'PF(" wvDialog ")。hide();' 'という* Cancel *ボタンがあります。しかし、まだダイアログを開くとそこにエラーメッセージが表示されます。 –

0

フォームを送信するたびにp:dialogまたはp:messageを更新してください。
更新の属性をp:commandButtonとすることで可能です。

<p:commandButton update="ID_OF_DIALOG" /> 
7

ダイアログボックスを開く必要がある要素には、p:resetInputを使用する必要があります。

あなたはp:commandButton

<p:commandButton value="Open dialog" update=":dialogId" oncomplete="PF('dialogWidget').show()" > 
    <p:resetInput target=":dialogId" /> 
</p:commandButton> 

を使用する場合、例えば、これは、ダイアログを開いたときに(検証メッセージを含む)、キャッシュされた値をリセットします。

関連する問題