我对Primefaces 3对话框的构造感到困惑.
我在SO中看到有这种模式的问题.表单在对话框之外.
<h:form>
<p:dialog id="dialog" modal="true" widgetVar="dlg">
</p:dialog>
</h:form>
Run Code Online (Sandbox Code Playgroud)
但其他问题有这个.
<p:dialog id="dialog" modal="true" widgetVar="dlg">
<h:form>
</h:form>
</p:dialog>
Run Code Online (Sandbox Code Playgroud)
Primefaces展示了http://www.primefaces.org/showcase/ui/dialogLogin.jsf赞成后者.
如果有任何正当理由使用其中一个,我会感到困惑吗?
谢谢
Dan*_*iel 15
你总是更喜欢使用这样的<h:form>内部<p:dialog
<p:dialog id="dialog" modal="true" widgetVar="dlg">
<h:form>
</h:form>
</p:dialog>
Run Code Online (Sandbox Code Playgroud)
因为对话框内容可能会从您的页面中"删除"并添加到DOM树中的其他位置,因此如果您将对话框放在某个表单中,它可能会导致您的对话框重新定位到其他位置并导致所有按钮/链接和其他元素停止工作(这是SO中一个非常常见的问题)
因此,为了在安全方面放置您在<h:form>标签内<p:dialog标记的地方
另一个例子是appendToBody="true"在对话框中使用时:
如果对话框位于h:form组件中并且启用了appendToBody,则浏览器对话框将不在表单中,并可能导致意外结果.在这种情况下,将窗体嵌套在对话框中.
| 归档时间: |
|
| 查看次数: |
7543 次 |
| 最近记录: |