【发布时间】:2015-01-16 12:04:32
【问题描述】:
我目前正在使用 Vaadin 7.3+,并希望在用户实时输入时在文本字段中进行验证。
这是我迄今为止尝试过的:
textField.setTextChangeEventMode(TextChangeEventMode.LAZY);
textField.setNullRepresentation("");
textField.addTextChangeListener(new FieldEvents.TextChangeListener() {
@Override
public void textChange(FieldEvents.TextChangeEvent event) {
for (Validator v : textField.getValidators()) {
try {
v.validate(event.getText());
} catch (InvalidValueException e) {
log.warn("validation error: " + e.getMessage() + " and value was: {}", event.getText());
}
}
}
});
问题在于,尽管所有验证器都在执行并且验证正在完成,但直到焦点离开该字段,即用户按 Enter 或单击其他位置时,才会呈现红色错误指示器。我尝试添加 textField.markAsDirty 但这不起作用。有谁知道这个问题的解决方案?或者在文本字段上创建实时验证器的一般更好的解决方案?
提前感谢您的时间和意见:-)
【问题讨论】: