Bootstrap datetimepicker 输入键填写初始日期

Bootstrap datetimepicker enter key to fill initial date

Bootstrap 日期时间选择器,如下所示:http://eonasdan.github.io/bootstrap-datetimepicker/

特别是在第一次显示时,回车键应该隐藏小部件并将当前日期放入输入字段。这是我尝试过的一些东西:

有一个 dp.hide 事件没有向回调中注入线索。所以,你不知道它是怎么触发的。

$("#datePicker").on("dp.hide", function(e) {
    // e.notSquat
});

只是不清楚日期时间选择器的哪个 DOM 元素实际上在内部接收回车键。绝对不是输入元素:

// handler never gets called. css selector is correct
$("#datePicker input").keypress(function(e) {
   console.log(e.which);
});

我有点勇敢,跳进了 datetimepicker.js 本身的代码: https://raw.githubusercontent.com/Eonasdan/bootstrap-datetimepicker/master/src/js/bootstrap-datetimepicker.js

有线索,例如第2588行,但我的天哪,一定有更简单的方法:

// line 2588
enter: function () {
        this.hide();
}

感谢任何帮助。

想出来了,以防有人觉得这有帮助。我在初始化插件时覆盖了keyBinds.enter 属性。

$("#datePicker").datetimepicker({
    keyBinds: {
        enter: function(){
            if(this.date() === null) {
                this.date(moment());    // moment() is similar to new Date()
            }
            this.hide();
        }
    },
    useCurrent: false
});

使用另一个库时遇到同样的问题 - uxsolutions/bootstrap-datepicker v1.8.0..

经过简短的调查,我发现回车键对我不起作用的原因是 forceParse 选项设置为 false 中未说明文档).

代码取自Datepicker.prototype.keydown:

switch (e.keyCode) {
  case 13: // enter
    if (!this.o.forceParse)
      break;
}

issue #2381