【问题标题】:Primefaces dialog keeps focus after being hiddenPrimefaces 对话框在隐藏后保持焦点
【发布时间】:2013-12-14 09:53:52
【问题描述】:

H1 ​​各位!让 JSF 2.0 中的以下场景(Mojarra 2.2、Glassfish 4、Primefaces 4.0):

<!DOCTYPE html>
<html lang="fr"
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui">
    <h:head>
        <title>Title</title>
    </h:head>
    <h:body onload="PF('dlg').show()">
        <p:dialog widgetVar="dlg"
            resizable="false" closable="false" >
            <h:form id="form">
                <h:outputLabel for="name" value="Name:" /> 
                <p:inputText id="name" />
                <p:commandButton id="submitButton" value="Submit" />
                <p:commandButton id="cancelButton" value="Cancel"
                    onclick="alert('ok'); PF('dlg').hide();" />
            </h:form>
        </p:dialog>
    </h:body>
</html>

问题是Primefaces对话框隐藏后保持焦点:取消对话框后按空格键或回车键,您可以观察到警报'ok'会再次显示!

当尝试使用onclick="alert('ok'); PF('dlg').hide(); PF('dlg').blur()"onclick="alert('ok'); PF('dlg').hide(); PF('dlg').focusout()" 将焦点从对话框中设置出来时,似乎整个主体都在重新加载,因为对话框重新出现...

我做错了吗?这是我的误解还是 Primefaces 中的错误? 任何帮助将不胜感激:)

【问题讨论】:

  • 尝试不使用&lt;h:form/&gt; 的对话框并将&lt;p:commandButton/&gt; 替换为&lt;p:button/&gt;
  • 感谢您的回答 kolossus,但它也不起作用。 Primefaces对话框在隐藏后不断捕捉空格键或输入按键...

标签: javascript jsf primefaces


【解决方案1】:

它正在使用:

document.activeElement.blur()

代替:

PF('dlg').blur()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-04
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    • 2019-03-09
    • 1970-01-01
    • 1970-01-01
    • 2014-10-08
    相关资源
    最近更新 更多