我有一个包含以下字段的表单:开始日期,持续时间(以天为单位)&结束日期。我希望用户能够输入一个持续时间或结束日期,另一个字段将根据此和开始日期自动计算。每个字段都有一个相关的反馈标签。但是,看起来很简单,我无法将其拉下来。这就是我在行为方面的目标:
如果缺少开始日期,则其他日期将被消隐并禁用。
更改任一字段会导致两者的ajax更新,并计算另一个字段。
提交表单时,“计算”字段必须为空(即使它显示计算的值)。底层域对象应该具有持续时间或结束日期,但不能同时具有两者。
如果用户删除了计算字段的值,则只会重新计算。
如果用户更改计算字段的值(对于有效值),则另一个字段将被消隐并使用计算值更新 - 它将成为计算字段。
如果用户在计算字段中输入无效值,则会导致反馈错误,并且未计算的字段不会更新。
类似地,如果用户在非计算字段中输入无效值,则显示反馈错误并且不更新计算字段(它仍然基于先前有效的非计算字段值)。
能够链接这些字段会很好 - 有另一个持续时间/结束日期,使用第一对夫妇的结束日期(计算与否)作为开始日期。
任何指针都会非常受欢迎,因为我很难清楚地看到这一点......
谢谢,
CN
答案 0 :(得分:0)
这很简单
一点都不简单!
您需要一些AjaxFormComponentUpdatingBehaviors来将表单与服务器状态同步。 对于计算字段,您必须使用自定义IModel实现。
答案 1 :(得分:0)
虽然Wicket
可以做到这一点;也许在JavaScript
中解决这个问题会更容易。或者组合,因为您也可以向JavaScript
提供Wicket
回调。