我有一個包含一些輸入組件的模式對話框。p:p中的inputText:layoutUnit在p:對話框內不起作用
在對話框內使用p:layout時出現問題。 ap:layoutUnit中的p:inputText組件可以在第一時間獲得焦點,但隨後它對鍵盤無響應,因爲沒有顯示輸入文本,也無法使用tab關鍵字切換到其他輸入字段(I只能用鼠標切換到另一個輸入組件)。
設置模態=「假」解決問題,但我需要一個模態對話框。
這裏是我的代碼:
<h:form id="outerForm">
<p:commandButton id="button" value="Show dialog" onclick="dialogVar.show()" type="button" />
<p:dialog id="dialog" header="inputText inside p:layout will not work" widgetVar="dialogVar" modal="true" resizable="false" closeOnEscape="true">
<h:inputText />
<p:autoComplete />
<p:panelGrid columns="2">
<h:outputLabel value="Write something" />
<p:inputText />
<h:outputLabel value="Write something else" />
<p:inputText />
<h:outputLabel value="Text Area" />
<p:inputTextarea rows="4" cols="30" autoResize="false" />
</p:panelGrid>
<p:layout id="diffDialogLayout" style="height:400px;width:900px;">
<p:layoutUnit id="diffWestUnit" position="west" size="45%">
<p:panelGrid columns="2">
<h:outputLabel value="Write something" />
<p:inputText />
<h:outputLabel value="Write something else" />
<p:inputText />
<h:outputLabel value="Text Area" />
<p:inputTextarea rows="4" cols="30" autoResize="false" />
</p:panelGrid>
</p:layoutUnit>
<p:layoutUnit id="diffCenterUnit" position="center">
<br />
</p:layoutUnit>
</p:layout>
<h:inputText />
</p:dialog>
</h:form>
我的環境:
- PrimeFaces 3.4.2
- PrimeFaces擴展0.6.1
- 鑽嘴魚科2.1.13
- 的Tomcat 7.0.30
- Eclipse的靛藍SR1
編輯
提出的解決方案正常工作。這個問題可以用下面的CSS代碼來解決:
.ui-dialog { z-index: 1005 !important; }
.ui-layout-pane-west { z-index: 1010 !important; }
.ui-layout-pane-center { z-index: 1010 !important; }
,或者,如果你想它只是一個特定的對話框:
#outerForm\3A diffDialog.ui-dialog { z-index: 1005 !important; }
#outerForm\3A diffWestUnit.ui-layout-pane-west { z-index: 1010 !important; }
#outerForm\3A diffCenterUnit.ui-layout-pane-center { z-index: 1010 !important; }
的\ 3A字符用於兼容IE 6 -8,如此處所述:Handling a colon in an element ID in a CSS selector。
不確定,但嘗試添加'appendToBody =「true」'您的'p:對話框' – Daniel
我試過了,但沒有任何改變。 – ramo102