Primefaces对话框表单结构

时间:2011-03-23 07:46:29

标签: primefaces

我正在使用Primefaces进行项目,我看到IE vs chrome / firefox / safari关于模态Primefaces对话框窗口的结果不好,我认为它与表单放置有关。在IE中,这些对话框不会出现,但我可以看到透明度。在chrome / firefox中他们很好。以下情况的最佳做法是什么:

  

列出具有一个表单的项目基础xhtml页面。这个页面有几个   打开具有自己的ajax提交的对话框的链接   (commandButton,commandLink)事件。

对话框是否应位于基本xhtml页面的表格内或之外?
对话框应该有自己的形式吗?

以下是插图:

<html>
    <ui:composition>
        <ui:define name="content">
            <h:form id="xyz">
                //main page content here, commandButtons, commandLinks...etc
            </h:form>
            <dc:zoomDialog/>
        </ui:define>
    </ui:composition>
</html>

<!-- zoomDialog maps to the below -->
<html>
<ui:component>
    <h:form id="dialogFrm"> 
        <p:dialog widgetVar="zoomDlg" modal="true" styleClass="dialog dialog2"
                draggable="false" resizable="false" showEffect="fade"
                hideEffect="fade">
            //dialog content here, commandButton, commanLink...etc
        </p:dialog>
    </h:form>
</ui:component>

1 个答案:

答案 0 :(得分:3)

我在你的示例代码中没有看到它,但前段时间我遇到了类似的问题。原因是:嵌套表单(与您描述的症状相同:所有浏览器都工作,IE除外)。嵌套表单不是有效的HTML。有些浏览器可以处理它。 IE不能。

一个好的测试是将整个html outpout(浏览器源,而不是jsf源)放入W3C Html validator并分析结果。

Primefaces showcase中,h:form元素始终位于p:dialog内。请参阅this discussion