按下"更多按钮"保持未提交的值。

时间:2015-01-30 07:24:41

标签: jsf

首先,我的情景:

我有一个包含几个输入字段的表单。其中一些是默认隐藏的,因为它们实际上并不常用:

<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;有没有办法在按下“显示/隐藏更多字段”按钮时保留未提交的值?

1 个答案:

答案 0 :(得分:1)

我的建议是始终从您的JSF页面发送“隐藏字段”,但默认情况下使用CSS将它们设为display: none。然后仅使用javascript隐藏/取消隐藏它们,例如jQuery或页面上的小JS脚本。整体反应会更快,而且你没有遇到与之抗争的问题。