Primefaces 如何 show/hide inputText 基于选定的 selectManyCheckbox 项目
Primefaces How to show/hide inputText based on selected selectManyCheckbox items
我需要你的帮助来根据 xhtml 中 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 将保留在表单中并且不会被隐藏。
试试这个 - inputText
在开始时不可见,因此无法更新。
<h:panelGroup id="name">
<p:inputText value="" rendered="#{user1.renderText}"/>
</h:panelGroup>
我需要你的帮助来根据 xhtml 中 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 将保留在表单中并且不会被隐藏。
试试这个 - inputText
在开始时不可见,因此无法更新。
<h:panelGroup id="name">
<p:inputText value="" rendered="#{user1.renderText}"/>
</h:panelGroup>