PrimeFaces datePicker 在输入时设置当前日期

PrimeFaces datePicker set current date on enter

我使用 PrimeFaces datePicker。日历打开后,我想在按下回车键且未选择日期时应用当前日期。

这适用于 jQuery datePicker (https://jqueryui.com/datepicker/) 但不适用于 PrimeFaces。如果有针对此行为的选项,我看不到它。

它在 PrimeFaces v8.0 中工作但在 v11.0.0 中不工作。

在此先感谢您的帮助!

解决方法

对于v11.0.0,我仍然可以使用日历组件。那里的行为仍然与 v8.0 中的相同。 所以我有一个临时的解决方法。`

解决方案

我使用了 Melloware 的 JavaScript 代码并将其转换为一个函数。由于我在没有 widgetVar 的应用程序中有很多 datePickers,所以我使用给定的事件来确定组件。

function applyDateOnEnter(event) {
    const datePicker = PrimeFaces.getWidgetById(event.target.parentNode.id);

    if (event.keyCode === 13 && datePicker.getDate() === null) {
        datePicker.setDate(new Date());
    }
}

如果你愿意,你可以把它变成一个函数,但这里是如何做的:

<p:datePicker 
id="basic" 
value="#{calendarJava8View.date}" 
widgetVar="dpBasic" 
onkeydown="if (event.keyCode === 13 &amp;&amp; PF('dpBasic').getDate() === null) { PF('dpBasic').setDate(new Date()) }" />