关闭p:对话框之前的火灾事件

时间:2014-07-09 11:26:35

标签: javascript jsf primefaces

我要求h:form中有p:dialog个输入组件 我想在用户关闭p:dialog之前显示另一个确认对话框。

我怎样才能实现这一目标?

Primefaces仅在onHide上为我提供了onShowp:dialog个事件 是否有任何名为onBeforeHide的事件?

使用:Primeface 3.5 JSF 2.1

2 个答案:

答案 0 :(得分:2)

回答这个可能有点迟。这是另一种在关闭时显示另一个对话框或提示的方法。

  • 创建对话框属性closable=falsecloseOnEscape=false并处理转义键事件,并在标题中引入自定义关闭图标。单击图像,您可以调用js方法或远程命令以显示另一个弹出窗口。

    <p:dialog widgetVar="dialogWidget" id="DlgWidgetId" resizable="false" closable="false" modal="true" closeOnEscape="false"> <f:facet name="header"> <h:outputText value=" Header Text"></h:outputText> <img id="closeIconId" src="../../images/close_icon.png" height="16px" width="16px" onclick="openAnotherPopup()" /> </f:facet> <script type="text/javascript"> $(document).keyup(function(e) { if (e.which == 27) $("#closeIconId").click(); }); </script> // Other contents in popup </p:dialog>

答案 1 :(得分:1)

您可以实施自己的:

此示例适用于PrimeFaces 5(使用PF快捷方式,在您的情况下直接调用widgetVar):

<强> 的javascript

$(document).ready(function() {
 //first unbind the original click event
 PF('dialogWV').closeIcon.unbind('click');// in PrimeFaces 3.5 replace PF('dialogWV') with dialogWV (window scope)

 //register your own
 PF('dialogWV').closeIcon.click(function(e) {
    var r = confirm("Are you sure!");
    if(r) {
       PF('dialogWV').hide();
     }
    //should be always called
    e.preventDefault();
   });
 })

请记住,如果您更新对话框,则必须记住...