【问题标题】:Validation error messages disappear when Trinidad component panelAccordion is minimized or maximized当 Trinidad 组件 panelAccordion 最小化或最大化时,验证错误消息消失
【发布时间】:2013-07-08 21:03:20
【问题描述】:

我有一个很长的表单,但要一起提交和验证。我需要把它分成几个部分。

我尝试使用 Trinidad 组件面板手风琴 将表单分成多个部分。

但是,如果我随后提交并验证表单,单击打开或关闭的面板之一会导致验证消息消失。

有什么办法可以避免这种情况吗?

或者有没有更好的方法来达到拆分表单的相同结果?

我正在使用 Trinidad 1.2.6MyFaces 2.0。 由于公司标准,我不能使用其他任何东西。

【问题讨论】:

    标签: jsf-2 myfaces trinidad


    【解决方案1】:

    实现预期效果的一种方法是在用户点击每个<tr:accordionPanel> 时提交表单。它支持许多其他client side events,因此请选择最适合您需求的一个。如果您提交整个表单,这将强制验证所有组件,无论用户是否输入了值。这可能是最快和最简单的方法,但有些人可能很挑剔,不喜欢这种解决方案。

    您也可以使用partial updates and partial triggers 并根据您选择的事件仅提交属于当前手风琴面板的组件。

    【讨论】:

    • 我对提交活动的想法很感兴趣...我不确定它的实用性(我们的验证需要一点时间,所以从用户的角度来看,它可能很烦人或很慢),但我会试试看。至于使用部分触发器,我不确定,因为有很多其他组件要触发,并且验证是高度定制的并且完全是服务器端的。我认为在我的情况下它既丑陋又缓慢(尽管它可能对其他人有用)。感谢您的建议!
    • @Laila 如果您的验证需要一段时间,部分更新可能是可行的方法。我认为这将减少触发验证的组件数量,而不是全部。再说一次,如果有很多的话,我明白你的意思。老实说,我并没有真正习惯 MyFaces,但也许你可以使用与 @this 等效的工具,或者用 f:ajax 包裹每个手风琴面板。这可能会让您从对所有 id 的硬编码中解脱出来……也许吧。
    • @Laila 现在我很好奇。我会看看我能挖出什么。请随时通知您的进度好吗?
    • 我最终使用了非特立尼达解决方案(纯 Javascript 和 CSS 选项卡更合适),但我将其标记为答案,因为这似乎是实现我想要的唯一方法使用给定的框架。
    猜你喜欢
    • 2019-06-18
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    • 2017-05-05
    • 2011-04-15
    • 2019-08-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多