Jsf 对话框将不会关闭素数面

Jsf 对话框将不会关闭素数面,jsf,dialog,primefaces,Jsf,Dialog,Primefaces,我的一页上有一个对话框。它开得很好。如果您使用页面上的按钮,它将关闭。但是,如果您尝试将“x”从对话框中退出,它将不会关闭。我相信这与我在对话框上有一个输入字段有关,但我不确定。我很抱歉,如果这是一个骗局,我找不到类似的职位 <p:commandButton action="#{phoneListBean.debugger}" value="Merge Unqiue" onclick="mdlg.show();" update

我的一页上有一个对话框。它开得很好。如果您使用页面上的按钮,它将关闭。但是,如果您尝试将“x”从对话框中退出,它将不会关闭。我相信这与我在对话框上有一个输入字段有关,但我不确定。我很抱歉,如果这是一个骗局,我找不到类似的职位

        <p:commandButton action="#{phoneListBean.debugger}"
            value="Merge Unqiue" onclick="mdlg.show();"
            update=":pmsg, :createNewPanel, :listform" />

        <p:dialog id="mdialog" header="Merge Unqiue" widgetVar="mdlg"
            appendToBody="true">
            <h:form id="mform">
                <h:panelGrid columns="2" cellpadding="5" id="m">
                    <h:outputLabel for="listName" value="Enter the List Name:" />
                    <p:inputText value="#{phoneListBean.mergeList.name}" id="listName" />


                    <p:commandButton action="#{phoneListBean.mergeUnique}"
                        value="Merge Unqiue" update=":pmsg, :listform"
                        onclick="mdlg.hide();" />
                </h:panelGrid>
            </h:form>

        </p:dialog>


提前谢谢你的帮助

您的问题是不想使用带有Primefaces按钮的
onclick
属性来显示和隐藏对话框。回发之前可能不会调用click事件,因为这些按钮未启用Ajax


相反,您应该使用
oncomplete
属性。这将通知Javascript事件仅在服务器回发后执行,这意味着
show()
将显示已更新的对话框内容,并且
hide()
只有在服务器端执行完成后才会出现。

您的问题是不想使用带有Primefaces按钮的
onclick
属性来显示和隐藏对话框。回发之前可能不会调用click事件,因为这些按钮未启用Ajax


相反,您应该使用
oncomplete
属性。这将通知Javascript事件仅在服务器回发后执行,这意味着
show()
将显示已更新的对话框内容,而
hide()
仅在服务器端执行完成后才会执行。

单击x时是否有任何错误?控制台中的浏览器错误或服务器错误?不,我看不到。stacktrace呢?任何输出?对话框是否嵌套在其他组件中?您确定没有发生JavaScript错误(在现代浏览器中按F12)?stacktrace中没有输出。我看到的唯一JS错误是[11:16:53.212]不推荐使用属性的指定属性。它总是返回真的。@单击x时是否有任何错误?控制台中的浏览器错误或服务器错误?不,我看不到。stacktrace呢?任何输出?对话框是否嵌套在其他组件中?您确定没有发生JavaScript错误(在现代浏览器中按F12)?stacktrace中没有输出。我看到的唯一JS错误是[11:16:53.212]不推荐使用属性的指定属性。它总是返回真的@