2013-09-30 56 views
1

我有一個帶有幾個TextField的檢票頁,它們具有不同類型的驗證器。到目前爲止,驗證是通過onChange事件上的Ajax觸發的。觸發驗證並通過ajax在不同組件上重繪

我也有一個複選框,它定義了哪些驗證規則應該用於TextFields。

如果我點擊複選框,然後將數據輸入到TextFields,驗證工作就很好。但是如何處理這樣一個事實,即如果事後點擊複選框,已經輸入和驗證的數據可能突然變得無效。如何從複選框中的AjaxEvent中觸發驗證和重繪(顯示錯誤通知)TextFields?

我試圖調用myTextField.validate(),但沒有觸發我的任何驗證器。

回答

1

由於您的驗證是基於多個組件,因此您應該實施IFormValidator。在getDependentFormComponents()中同時通過複選框和文本框,然後更改任何一個都會觸發它。

另外,如果您使用複選框來刷新某些元素,請務必使用AjaxCheckbox,即onUpdate(AjaxRequestTarget)方法。

0

您可以在複選框中附加AjaxFormSubmitBehavior。這將提交表單並觸發驗證每次複選框值切換。