我有一个wicket页面,其中包含几个具有不同类型验证器的TextField。到目前为止,验证是通过onChange事件上的Ajax触发的。
我还有一个复选框,用于定义TextFields应使用哪组验证规则。
如果我单击复选框然后将数据输入TextFields,验证工作正常。但是,如果之后单击复选框,我如何处理已输入和验证的数据突然变为无效的事实?如何从复选框中的AjaxEvent中触发TextFields的验证和重绘(以显示错误通知)?
我试图调用myTextField.validate()但是没有触发任何验证器。
答案 0 :(得分:1)
由于您的验证基于多个组件,因此您应该实现IFormValidator。通过getDependentFormComponents()
中的复选框和文本字段,更改任何一个都会触发它。
此外,如果您使用复选框刷新某些元素,请务必使用AjaxCheckbox,onUpdate(AjaxRequestTarget)
方法。
答案 1 :(得分:0)
您可以在复选框中附加AjaxFormSubmitBehavior。每次切换复选框值时,都会提交表单并触发验证。