Wicket:在计算和可编辑之间切换字段

时间:2015-11-24 13:10:01

标签: java forms wicket

我有一个包含以下字段的表单:开始日期,持续时间(以天为单位)&结束日期。我希望用户能够输入一个持续时间或结束日期,另一个字段将根据此和开始日期自动计算。每个字段都有一个相关的反馈标签。但是,看起来很简单,我无法将其拉下来。这就是我在行为方面的目标:

  • 如果缺少开始日期,则其他日期将被消隐并禁用。

  • 更改任一字段会导致两者的ajax更新,并计算另一个字段。

  • 提交表单时,“计算”字段必须为空(即使它显示计算的值)。底层域对象应该具有持续时间或结束日期,但不能同时具有两者。

  • 如果用户删除了计算字段的值,则只会重新计算。

  • 如果用户更改计算字段的值(对于有效值),则另一个字段将被消隐并使用计算值更新 - 它将成为计算字段。

  • 如果用户在计算字段中输入无效值,则会导致反馈错误,并且未计算的字段不会更新。

  • 类似地,如果用户在非计算字段中输入无效值,则显示反馈错误并且不更新计算字段(它仍然基于先前有效的非计算字段值)。

  • 能够链接这些字段会很好 - 有另一个持续时间/结束日期,使用第一对夫妇的结束日期(计算与否)作为开始日期。

任何指针都会非常受欢迎,因为我很难清楚地看到这一点......

谢谢,

CN

2 个答案:

答案 0 :(得分:0)

  

这很简单

一点都不简单!

您需要一些AjaxFormComponentUpdatingBehaviors来将表单与服务器状态同步。 对于计算字段,您必须使用自定义IModel实现。

答案 1 :(得分:0)

虽然Wicket可以做到这一点;也许在JavaScript中解决这个问题会更容易。或者组合,因为您也可以向JavaScript提供Wicket回调。