The af:dialog element supports a number of built in buttons that can be displayed at the bottom of the dialog. The
When using the built in buttons, the first button is the default button. If you press the
type
property governs which buttons are displayed, like OK/Cancel or Yes/No. If the type
property is not set, an OK and Cancel button is displayed by default.When using the built in buttons, the first button is the default button. If you press the
Enter
key the dialog will close because the default button action is executed.If your dialog window contains an af:subform with a default command button, and the cursor is in an input component inside the af:subform, clicking enter closes the dialog, it does not execute the default command associated with the subform.
To solve this, you can set the
Here is an example:
type
property to "none" and use the buttonBar
facet to include custom OK and Cancel buttons. Here is an example:
<af:popup id="p0" contentDelivery="lazyUncached" eventContext="launcher">
<af:dialog modal="true" title="My Dialog" type="none" id="dialog2"
resize="on" stretchChildren="first">
<af:region value="#{bindings.myTaskflowWithSubForm.regionModel}" id="region2"/>
<f:facet name="buttonBar">
<af:group id="g1">
<af:commandButton text="OK" actionListener="#{myDialogBean.handleOK}" id="cb1"/>
<af:commandButton text="Cancel" actionListener="#{myDialogBean.handleCancel}" id="cb2"/>
</af:group>
</f:facet>
</af:dialog>
</af:popup>
But this way, when you click on one of the buttons, dialogue doesn't get closed.
ReplyDelete