2

我有几页表格。每个表单都有一个AjaxButton提交和一个

<div wicket:id="feedback"></div>

对于反馈面板。每个表单字段都是必需的,并且FeedbackPanel如果您遗漏了一个字段,则会正确填写来自验证器的错误消息。问题是只有当我在浏览器上点击“后退”然后“前进”再次查看页面时才会显示这些消息,无论我将反馈<div>放在页面内的哪个位置。

直到后退/前进手势,没有出现错误信息,但是表单没有到达onSubmit()(显然有验证错误)。

这个问题对于我所有具有表单和FeedBackPanel. 所有页面都使用Bootstrap 3.2.0,以防万一。

关于发生了什么的任何线索?

4

1 回答 1

3

当您使用 Ajax 时,您必须添加要更新到AjaxRequestTarget. 将由 Ajax 更新的组件必须具有预定义的标记 ID。

所以,你必须调用setOutputMarkupId(true)你的方法FeedbackPanel和覆盖onError方法AjaxButton

... = new AjaxButton (...) {

         ...

         @Override
         protected void onError(final AjaxRequestTarget target, final Form form) {
             /*here add your feedback panel to be updated via ajax*/
             target.addComponent(feedbackPanel);
         }
     }
于 2014-10-18T15:43:56.923 回答