2017-10-06 74 views
0

你好我正在使用Vaadin 8和即時嘗試使用Vaadins DateField用戶輸入。Vaadin DateField驗證不顯示驗證錯誤

private DateField date = new DateField("Date of Birth"); 
... 
binder.forField(date).asRequired("Some Warning").withValidator(new DateValidator()).bind(Person::getDateOfBirth, Person::setDateOfBirth); 

DateValidator檢查Person是否至少18歲。

問題是,如果我使用日期選擇器,它集成在DateField中,如果Person年齡小於18,則不會向用戶顯示驗證錯誤。但是,當我輸入日期並按Enter鍵或切換到另一個輸入字段出現驗證錯誤。

如何通過Datepicker獲得輸入時顯示驗證錯誤?

回答

0

顯然Validator不管理ValueChange事件。你可以做你自己是這樣的:

date.addValueChangeListener(event -> 
     validate(event.getSource().getDefaultValidator(), event.getValue())); 

而一些例子validate()功能:

private void validate(Validator validator, LocalDateTime dateTime) 
{ 
    validator.apply(dateTime, ...); 
}