触发验证并通过ajax重绘不同的组件

时间:2013-09-30 23:01:15

标签: ajax wicket

我有一个wicket页面,其中包含几个具有不同类型验证器的TextField。到目前为止,验证是通过onChange事件上的Ajax触发的。

我还有一个复选框,用于定义TextFields应使用哪组验证规则。

如果我单击复选框然后将数据输入TextFields,验证工作正常。但是,如果之后单击复选框,我如何处理已输入和验证的数据突然变为无效的事实?如何从复选框中的AjaxEvent中触发TextFields的验证和重绘(以显示错误通知)?

我试图调用myTextField.validate()但是没有触发任何验证器。

2 个答案:

答案 0 :(得分:1)

由于您的验证基于多个组件,因此您应该实现IFormValidator。通过getDependentFormComponents()中的复选框和文本字段,更改任何一个都会触发它。

此外,如果您使用复选框刷新某些元素,请务必使用AjaxCheckboxonUpdate(AjaxRequestTarget)方法。

答案 1 :(得分:0)

您可以在复选框中附加AjaxFormSubmitBehavior。每次切换复选框值时,都会提交表单并触发验证。