0

我的项目正在使用 Wicket 的AjaxFormValidatingBehavior将表单内容自动保存到带有树形菜单的多选项卡表单上的 Session(单个选项卡上没有保存按钮,尽管有一个实际提交表单的“保存”按钮,运行验证并将内容保存到数据库)。我面临几个问题:

  1. 由于该行为被添加到所有表单组件的onChange事件中,因此每次用户从一个字段移动到另一个字段时都会发生一次服务器跳闸。我知道可以指定油门持续时间来防止这种情况,但在我的情况下无法设置,因为我的表单具有不同的长度/复杂性,许多组件是动态生成的(包括树形菜单)。但是有没有更优雅的解决方案来自动保存表单内容(没有提交按钮)而不是这个烦人的解决方案。

  2. 我面临的另一个问题是发布onChange事件,在 Firefox 上,组件在“服务器之旅”结束后失去焦点。在 IE7 上它工作正常。

4

1 回答 1

0

对于第一个问题,我认为您需要添加一个流水线设施,在您的组件onchange调用您的调用您的 webapp 的 javascript 函数。您可以包含与节流持续时间提供的功能类似的功能,但在页面范围内(例如延迟每个调用,并且仅在它早于 x 毫秒时才触发最后一个调用)。

对于第二个,我认为你必须AjaxRequestTarget#focusComponent在你的行为中使用,或者在你的“包装器”中处理这个东西,如第一个答案中所述。

于 2012-05-15T11:46:16.620 回答