首页 > 解决方案 > 处理 jQuery datepicker 元素上的任何事件

问题描述

我正在使用日期选择器,并且在“更改”事件中,我正在用时刻格式化模型的日期。

jQuery('#issued').datepicker({
                autoclose: true,
                todayHighlight: true
            }).on('change', (event) => {
                console.dir(event);
                this.issue_at = moment(Date.parse(event.target.value)).format("YYYY-MM-DD");
            });

当我从日历中选择一个日期时,这很有效,但是当我打开日历并在外部单击时,它会退回到原始日期格式。我知道如果我知道当我不选择日期时会触发什么事件,我可以防止这种情况发生。

打开日历但未选择日期的事件名称是什么。更好的是,如何编写可以处理任何事件的 jquery 事件处理程序。如果不可能,那么我如何检测不选择日期事件?

标签: jqueryjquery-ui-datepickerjquery-events

解决方案


您可以尝试使用“ blur ”或“ focusout ”而不是“ change ”事件。正如@user7290573 所问的那样,您能否分享一个 jsFiddle 以确保一切都按预期工作。

注意:这实际上不是最干净的方式,并且会导致触发您创建的事件处理程序函数比预期的要多得多。

编辑

如果预期结果是确保日期以YYYY-MM-DD格式显示,您可能可以使用以下代码来代替初始化:

jQuery('#issued').datepicker({
                autoclose: true,
                todayHighlight: true,
dateFormat:"yy-mm-dd"});

对应链接


推荐阅读