【发布时间】:2013-07-08 21:03:20
【问题描述】:
我有一个很长的表单,但要一起提交和验证。我需要把它分成几个部分。
我尝试使用 Trinidad 组件面板手风琴 将表单分成多个部分。
但是,如果我随后提交并验证表单,单击打开或关闭的面板之一会导致验证消息消失。
有什么办法可以避免这种情况吗?
或者有没有更好的方法来达到拆分表单的相同结果?
我正在使用 Trinidad 1.2.6 和 MyFaces 2.0。 由于公司标准,我不能使用其他任何东西。
【问题讨论】:
我有一个很长的表单,但要一起提交和验证。我需要把它分成几个部分。
我尝试使用 Trinidad 组件面板手风琴 将表单分成多个部分。
但是,如果我随后提交并验证表单,单击打开或关闭的面板之一会导致验证消息消失。
有什么办法可以避免这种情况吗?
或者有没有更好的方法来达到拆分表单的相同结果?
我正在使用 Trinidad 1.2.6 和 MyFaces 2.0。 由于公司标准,我不能使用其他任何东西。
【问题讨论】:
实现预期效果的一种方法是在用户点击每个<tr:accordionPanel> 时提交表单。它支持许多其他client side events,因此请选择最适合您需求的一个。如果您提交整个表单,这将强制验证所有组件,无论用户是否输入了值。这可能是最快和最简单的方法,但有些人可能很挑剔,不喜欢这种解决方案。
您也可以使用partial updates and partial triggers 并根据您选择的事件仅提交属于当前手风琴面板的组件。
【讨论】:
@this 等效的工具,或者用 f:ajax 包裹每个手风琴面板。这可能会让您从对所有 id 的硬编码中解脱出来……也许吧。