1

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

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

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

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

4

2 回答 2

1

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

此外,如果您使用复选框来刷新某些元素,请确保使用AjaxCheckbox,它有onUpdate(AjaxRequestTarget)方法。

于 2013-10-01T08:04:02.627 回答
0

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

于 2013-10-02T19:49:14.460 回答