Я использую версию JSF PrimeFaces 6.1
У меня есть confirmDialog для нескольких commandButton, как выглядит
<p:commandButton id = "applyButton" icon = "icon-interaction-upload-3"
styleClass = "icon-button edit-panel-apply main-button"
rendered = "#{Bean.editMode}"
onclick = "setMainButtonYes(); $('[id$=hiddenApplyButton]').click(); return false;"
title = "Apply"/>
<p:commandButton id = "hiddenApplyButton"
actionListener = "#{Bean.save}"
style = "display: none"
onstart = "saveScrollPosition();blockUi('blockUI')"
oncomplete = "unblockUi('blockUI');setScrollPosition();">
<p:confirm header = "Blablabla"
message = "Apply"
icon = "ui-icon-alert"/>
</p:commandButton>
<p:commandButton id = "discardButton" icon = "icon-interaction-remove-2"
styleClass = "icon-button edit-panel-discard" rendered = "#{Bean.editMode}"
title = "Discard"
onclick = "setMainButtonNo(); $('[id$=hiddenDiscardButton]').click(); return false;"/>
<p:commandButton id = "hiddenDiscardButton"
actionListener = "#{Bean.discardChanges}"
style = "display: none"
onstart = "saveScrollPosition();blockUi('blockUI')"
oncomplete = "unblockUi('blockUI');setScrollPosition();">
<p:confirm header = "Blablabla"
message = "Discard"
icon = "ui-icon-alert"/>
</p:commandButton>
<p:confirmDialog id = "confirmationDialog" global = "true" closeOnEscape = "true">
<p:commandButton id = "yes" value = "Yes"
styleClass = "ui-confirmdialog-yes edit-confim-yes yesButtonUpdate"
onstart = "saveScrollPosition();" oncomplete = "setScrollPosition();"
icon = "ui-icon-check"/>
<p:commandButton id = "no" value = "No"
styleClass = "ui-confirmdialog-no edit-confim-no noButtonUpdate main-button"
onstart = "saveScrollPosition();" oncomplete = "setScrollPosition();"
icon = "ui-icon-close"/>
</p:confirmDialog>
Для кнопки «Применить» при открытии диалогового окна нажатие «Ввод» работает правильно и сохраняет изменения, но во втором случае для кнопки «Отменить» я хочу, чтобы кнопка «Ввод» закрывала диалоговое окно без отмены изменений. Я попытался добавить тег defaultCommand, но он не работает. Как я могу установить Enter вместо commandButton во втором случае?
P.S. Функция setMainButtonYes / No () просто добавляет нужный класс к кнопкам, чтобы рисовать их.





Не такое решение, как вы ожидали, но с ограничениями confirmDialog, возможно, единственным вариантом было бы изменить порядок кнопок, чтобы первая кнопка была командой по умолчанию:
<p:confirmDialog id = "confirmationDialog" global = "true" closeOnEscape = "true">
<p:commandButton id = "no" value = "No" />
<p:commandButton id = "yes" value = "Yes"/>
</p:confirmDialog>