如何在 blockUI 处于活动状态时禁用 p:defaultCommand?

How to disable p:defaultCommand when blockUI is active?

我正在使用 Primefaces 7.0 并希望在 blockUI 处于活动状态时禁用 defaultCommand...我的问题是,当我点击 SaveButton blockUI 处于活动状态,但我仍然可以按 ENTER 并触发 defaultCommand。我怎样才能禁用它?我不想总是禁用 defaultCommand

<h:form id="form">  

    <p:panel id="pnlContent">
        <p:commandButton value="SaveButton" id="btnSave" action="#{defaultView.longRunningOperation}"/>

        <p:defaultCommand target="btnSave"/>
    </p:panel>

    <p:blockUI block="pnlContent" trigger="btnSave"/>

</h:form>

您可以通过调用 JQuery.blur() 将焦点从被阻止面板中的所有组件上移开:

<p:commandButton value="SaveButton" id="btnSave"
    onclick="$(PrimeFaces.escapeClientId('form:pnlContent') + ' *').blur()" />

这将防止在随后按下 enter 时调用其他命令。