【问题标题】:show confirm-dialog when press ESC key for close dialog primefaces按 ESC 键关闭对话框primefaces时显示确认对话框
【发布时间】:2017-10-23 08:43:14
【问题描述】:

我有一个对话框,如果我按下ESC 键,我想显示对话框确认(你确定吗?)此事件将触发p:commandButton。代码如下:

<p:dialog id="dlgEdit" closeOnEscape="false" closable="false" modal="true">
   ...
   ...
   ...
  <p:commandButton process="@this" value="SAVE" widgetVar="btnSaveDialogEdit">
    <p:confirm ...
               message="do you want save?"/>
  </p:commandButton>

  <p:commandButton process="@this" value="CLOSE" widgetVar="btnCloseDialogEdit">
    <p:confirm ...
               message="do you want close?"/>
  </p:commandButton>

  <p:confirmDialog>
  ...two commandbutton Yes/No
  <p:confirmDialog>

  <p:hotkey bind="esc" handler="PF('btnCloseDialogEdit').getJQ().click()" />
</p:dialog>

当我点击按钮SAVE 时,对话框do you want save? 显示,只要我按下ESC 键第二个对话框do you want close 显示。在确认对话框中,启用closeOnEscape = "true"。我想,当我在对话框do you want save? 上按下键ESC 时,这个对话框将被隐藏,但我不能。!!

【问题讨论】:

    标签: javascript jquery primefaces dialog


    【解决方案1】:

    您可以通过以下结构来实现:

    <p:dialog id="dlgEdit" widgetVar="dlgEdit"
        closeOnEscape="true" closable="false" modal="true">
        ...
        ...
        ...
    
        <p:confirmDialog message="Do you want to save?" widgetVar="confirmClose">
            <p:commandButton value="Yes"
                oncomplete="PF('confirmClose').hide();PF('dlgEdit').hide();" />
            <p:commandButton value="No" type="button"
                onclick="PF('confirmClose').hide();PF('dlgEdit').hide();" />
        </p:confirmDialog>
    
        <p:hotkey bind="esc" handler="PF('confirmClose').show();" />
    </p:dialog>
    

    记得为Yes 添加listener 按钮来处理保存机制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-05
      • 1970-01-01
      • 2010-10-13
      • 2016-03-24
      • 2023-04-03
      • 1970-01-01
      • 2017-06-04
      • 2014-04-08
      相关资源
      最近更新 更多