您好我使用Vaadin 8并尝试使用Vaadins DateField进行用户输入。
private DateField date = new DateField("Date of Birth");
...
binder.forField(date).asRequired("Some Warning").withValidator(new DateValidator()).bind(Person::getDateOfBirth, Person::setDateOfBirth);
DateValidator检查此人是否至少18岁。
问题在于,如果我使用Datepicker,它集成在DateField中,如果Person小于18,则向用户显示验证错误。但是当我输入日期并按Enter或切换到另一个输入时字段出现验证错误。
如果通过Datepicker提供输入,我如何实现验证错误?
答案 0 :(得分:0)
显然Validator
无法管理 ValueChange 事件。你可以自己这样做:
date.addValueChangeListener( event ->
validate( event.getSource().getDefaultValidator(), event.getValue() ) );
一些示例validate()
函数:
private void validate(Validator validator, LocalDateTime dateTime)
{
validator.apply(dateTime, ...);
}