gpt4 book ai didi

java - 如何在 Vaadin 的文本字段上创建实时 validator ?

转载 作者:搜寻专家 更新时间:2023-11-01 02:43:33 25 4
gpt4 key购买 nike

我目前正在使用 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());
}
}
}
});

问题是,尽管所有 validator 都在执行并且正在完成验证,但直到焦点离开该字段(即用户按下回车键或单击其他地方)后,才会呈现红色错误指示器。我尝试添加 textField.markAsDirty 但这没有用。有谁知道这个问题的解决方案?或者有更好的解决方案来在文本字段上创建实时 validator ?

提前感谢您的时间和意见:-)

最佳答案

Vaadin 核心中的 validator 并不是为在输入时工作而设计的,这对于 RIA 框架来说是一种耻辱。这有望在即将发布的版本中得到修复。今天让它与核心组件一起工作有点棘手,但可行。如果您的服务器和客户端之间存在一些延迟,您自己的解决方案可能会出现一些用户体验问题 - 如果用户在执行 validator 时再次开始重新输入,则光标可能会跳到意想不到的位置。我在 Viritin add-on 中做了很多工作.通过将其 AbstractForm(或原始 MBeanFieldGroup)与 MTextField 一起使用,这应该可以很好地工作并且无需任何配置。您可以尝试使用该解决方案,例如this example .

关于java - 如何在 Vaadin 的文本字段上创建实时 validator ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27983569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com