首先,我的情景:
我有一个包含几个输入字段的表单。其中一些是默认隐藏的,因为它们实际上并不常用:
<h:form>
<!-- with validators -->
<h:inputText>...</h:inputText>
<h:inputText>...</h:inputText>
<!-- show this fields only when the user wants to -->
<h:panelGroup rendered="#{!bean.hide}">
<h:inputText>...</h:inputText>
<h:inputText>...</h:inputText>
</h:panelGroup>
<h:commandButton value="Show / hide more fields" actionListener="#{bean.toogleHide}" />
<h:commandButton value="Submit" />
</h:form>
这将是豆:
@SessionScoped
@ManagedBean
public class Bean {
// with getter
private boolean hide = true;
public void toogleHide(ActionEvent event) {
hide = !hide;
}
}
我想做什么:
假设用户使用有效/无效数据填充第一个输入字段。现在他希望看到默认隐藏的其他输入字段。那么按下命令按钮“显示/隐藏更多字段”。
=&GT;有没有办法在按下“显示/隐藏更多字段”按钮时保留未提交的值?
答案 0 :(得分:1)
我的建议是始终从您的JSF页面发送“隐藏字段”,但默认情况下使用CSS将它们设为display: none
。然后仅使用javascript隐藏/取消隐藏它们,例如jQuery或页面上的小JS脚本。整体反应会更快,而且你没有遇到与之抗争的问题。