私のページには、いくつかのアクションonChangeを実行するように設定されたselectOneMenuがあります。アクションが実行される前に confirmDialog を表示したい。
以下は私の実装ですが、うまくいかないようです。確認ダイアログは、ユーザーがオプションを選択する時間を与えずに自動的に非表示になり、クエストには以前の選択の値が含まれます。
<p:selectOneMenu id="selectMenu" value="#{component.selectedAction}"onchange="confirmDialogWidgetVar.show()" >
<f:selectItem itemLabel="Option A" itemValue="A"/>
<f:selectItem itemLabel="Option B" itemValue="B"/>
<f:selectItem itemLabel="Option C" itemValue="C"/>
<f:selectItem itemLabel="Option D" itemValue="D"/>
<p:ajax update="confirmDialog" process="@this" global="false"/>
</p:selectOneMenu>
<p:confirmDialog id="confirmDialog" widgetVar="confirmDialogWidgetVar" message="Are you sure you want to select #{component.selectedAction}?">
<p:commandButton value="YES" oncomplete="confirmDialogWidgetVar.hide()"/>
<p:commandButton value="NO" onclick="confirmDialogWidgetVar.hide()"/>
</p:confirmDialog>
表示したいメッセージは、「オプション A を選択してよろしいですか?」です。オプション A が選択されている場合の確認ダイアログで。