2014-10-18 20 views
1

我有一個表單幾頁。每個表單都有提交的AjaxButtonWicket FeedbackPanel沒有顯示

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

用於反饋面板。每個表單字段都是必需的,並且FeedbackPanel正確地填充了來自驗證器的錯誤消息,以防您離開一個字段。問題在於,只有當我在瀏覽器上點擊「返回」,然後「轉發」才能再次看到頁面時,纔會顯示這些消息,無論我在哪裏放置頁面內的反饋<div>

直到後退/前進的手勢,沒有錯誤消息出現,但表單沒有達到onSubmit()(顯然,有驗證錯誤)。

這個問題對於我所有具有表格和FeedBackPanel的頁面來說都很常見。所有頁面都使用Bootstrap 3.2.0,以防萬一。

有關發生了什麼的任何線索?

回答

2

當您使用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); 
     } 
    }