如何检查 p:dialog 是否打开?

pkn*_*230 0 html javascript jquery primefaces

我已经在我的网页上实现了一个弹出框

<p:dialog header="Value" widgetVar="confirmationCbxTxt" ..>
Run Code Online (Sandbox Code Playgroud)

现在,我想检查单击页面上的按钮时是否打开了此弹出框。我的按钮的代码是

<p:commandButton value="#{label.close}" ajax="true" id="Close2" onclick="focuspopup();" />
Run Code Online (Sandbox Code Playgroud)

使用 onclick 函数 "onclick="focuspopup();" 我想检查我的弹出框是否在屏幕上打开。有人可以建议这种方法。我正在考虑在我的 focuspopup() 中使用 jquery 来测试打开弹出。

Mat*_*ets 5

PrimeFaces.widget.Dialog根据PrimeFaces 5.2 用户指南(第 184 页),客户端 API包含三种方法:

  • show()显示对话框。
  • hide()关闭对话框。
  • isVisible()以布尔值形式返回可见性。

使用最后一个来满足要求。例如,在您的focuspopup()函数中添加以下内容:

var open = PF('confirmationCbxTxt').isVisible();
Run Code Online (Sandbox Code Playgroud)

注意:对于较旧的 PrimeFaces 版本(5.1 及以下),isVisible()不存在,因此您需要将其替换为

var open = PF('confirmationCbxTxt').jq.is(':visible'); 
Run Code Online (Sandbox Code Playgroud)