按 "more-Button" 时保留未提交的值
Keep non submitted values, when pressing "more-Button"
首先,我的场景:
我有一个包含多个输入字段的表单。其中一些默认隐藏,因为它们并不经常需要:
<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>
这将是 bean:
@SessionScoped
@ManagedBean
public class Bean {
// with getter
private boolean hide = true;
public void toogleHide(ActionEvent event) {
hide = !hide;
}
}
我想做的事情:
假设,用户在第一个输入字段中填写有效/无效数据。现在他想查看默认隐藏的其他输入字段。所以会按下命令按钮 "show / hide more fields"。
=> 有没有办法在按下 "show / hide more fields" 按钮时保留未提交的值?
我的建议是始终从您的 JSF 页面发送 "hidden fields",但默认情况下使用 CSS 将它们设为 display: none
。然后 hide/unhide 他们只有 javascript,例如jQuery 或页面上的小 JS 脚本。整体将更加灵敏,而且您不会遇到正在与之抗争的问题。
首先,我的场景:
我有一个包含多个输入字段的表单。其中一些默认隐藏,因为它们并不经常需要:
<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>
这将是 bean:
@SessionScoped
@ManagedBean
public class Bean {
// with getter
private boolean hide = true;
public void toogleHide(ActionEvent event) {
hide = !hide;
}
}
我想做的事情:
假设,用户在第一个输入字段中填写有效/无效数据。现在他想查看默认隐藏的其他输入字段。所以会按下命令按钮 "show / hide more fields"。
=> 有没有办法在按下 "show / hide more fields" 按钮时保留未提交的值?
我的建议是始终从您的 JSF 页面发送 "hidden fields",但默认情况下使用 CSS 将它们设为 display: none
。然后 hide/unhide 他们只有 javascript,例如jQuery 或页面上的小 JS 脚本。整体将更加灵敏,而且您不会遇到正在与之抗争的问题。