java 如果仅输入一个字段(日期或时间字段),则Vaadin DateTimePicker变为空

hwamh0ep  于 2023-01-19  发布在  Java
关注(0)|答案(1)|浏览(117)

我有一个DateTimePicker组件,我用它来过滤一些数据。如果用户只输入了日期或时间字段中的一个,DateTimePicker组件的值将变为空。我想分别获得日期和时间字段。实际上,如果用户只输入日期字段,我需要将时间字段设置为默认值,如12:00AM。但是我找不到哪个字段为空,哪个字段的值不为空。
我曾尝试将其值赋给LocalDateTime参数,但每当我对具有一个空字段的DateTimePicker使用getValue()方法时,值返回为空。

private DateTimePicker start = new DateTimePicker();
        private boolean isTimeNull(){
            LocalDateTime dateTime = start.getValue();
        }
oalqel3c

oalqel3c1#

另一个字段(通常是Time)的默认值是组件中缺少的一个特性,但是您可以使用JavaScript解决这个问题。
https://github.com/vaadin/web-components/issues/668
下面是一个示例,如果缺少零小时,如何填充时间。

DateTimePicker picker = new DateTimePicker();
 
  picker.getElement().executeJs("this.getElementsByTagName(\"vaadin-date-time-picker-date-picker\")[0].addEventListener('change', function(){this.getElementsByTagName(\"vaadin-date-time-picker-time-picker\")[0].value='00:00';}.bind(this));");
  picker.addValueChangeListener(event -> {      
      Notification.show(event.getValue().toString());
  });
  add(picker);

相关问题