2015-05-22 64 views
0

我需要您的幫助來顯示和隱藏inputText根據selectManyCheckbox在xhtml中選定的項目。該代碼是:Primefaces如何顯示/隱藏基於選擇的selectManyCheckbox項目的inputText

<p:selectManyCheckbox id="basic" value="#{user1.selectedConsoles}"> 
    <f:selectItem itemLabel="Xbox One SS" itemValue="XboxOne" /> 
    <f:selectItem itemLabel="PS4 SS" itemValue="PS4" /> 
    <f:selectItem itemLabel="Wii U SS" itemValue="WiiU" /> 
    <p:ajax listener="#{user1.renderInput}" update="name"/> 
</p:selectManyCheckbox> 

<h:panelGroup id="name"> 
    <p:inputText value="" rendered="#{user1.renderText}"/> 
</h:panelGroup> 

和bean代碼:

private String[] selectedConsoles; //Setter & Getter 
private List<String> list = new ArrayList<String>(); //Setter & Getter 
private boolean renderText = false; //Setter & Getter 


public void renderInput() { 
    list= Arrays.asList(selectedConsoles); 
    if (list.contains("PS4")) { 
    renderText = true; 
    } 
    else if (!list.contains("PS4")) { 
     renderText = false; 
    } 
} 

如果selectManyCheckbox包含( 「PS4」),然後顯示inputText的,否則掩蓋它。現在在上述情況下,它顯示我是否選擇了PS4,但是當我解開PS4時,inputText將保留在表單中並且不會隱藏。

+0

@Kukeltje第一部分是類似的,但第二部分是不同的 – 99maas

+0

是的,但每個問題應該只有一個問題。所以它仍然是重複的。爲第二部分提出一個新問題。 – Kukeltje

回答

1

試試看 - inputText在開始時不可見,所以無法更新。

<h:panelGroup id="name"> 
     <p:inputText value="" rendered="#{user1.renderText}"/> 
</h:panelGroup> 
+0

仍然是一樣的,inputText沒有顯示 – 99maas

+0

請忽略上面的評論。感謝它的工作,但是如果我再次取消選中,再多一次,inputText應該再次隱藏。我試圖做一個其他的如果和添加!(list.contains(「PS4」)),但inputText不隱藏,它仍然顯示 – 99maas

+0

你可以用你添加的內容更新你的問題? –

相關問題