【发布时间】:2019-06-09 17:25:36
【问题描述】:
我正在使用带有自定义验证器的<p:calendar />。我希望验证器由change 事件触发。
此外,我使用包含时间的日期模式 (dd.MM.yyyy HH:mm)。
如果使用时间,则与简单的日期使用相比,该组件的行为不同。在弹出日期选择器中选择日期时,弹出窗口本身不会自动关闭,因为您可能想随后选择时间。
在我的设置中,我需要更新消息和日历以获得正确的验证演示(消息中的信息和日历上的红色边框)。 但是更新关闭了日期选择器,所以我需要打开它两次来设置日期和时间。无论如何,它仍然会变得更糟,因为时间滑块实际上会在 每个 步骤上触发一个更改事件,所以我根本无法使用滑块(我需要打开选择器三十次才能将其设置为十二点半)。
我看到了相互矛盾的要求(更新组件与保持弹出),但没有解决方案。我很感激任何建议。
<p:message
id="id_message"
for="id_calendar" />
<p:calendar
id="id_calendar"
value="#{backingBean.date}"
pattern="dd.MM.yyyy HH:mm">
<f:validator
validatorId="myValidator" />
<p:ajax
event="change"
update="id_message id_calendar"/>
</p:calendar>
【问题讨论】:
-
在
p:ajax上使用delay="500"会有一点改进
标签: validation jsf primefaces