当输入获得焦点并更新日历时如何显示日期选择器日历

How to show datepicker calendar when the input get focus and update calendar

我有一个基于此 URL 的日历示例: http://eonasdan.github.io/bootstrap-datetimepicker

这是 HTML 代码:

<div class="form-group col-xs-2 col-md-2">
    <label for="datebirth" class="control-label">Date of Birth</label>
    <div class="input-group date" id="datetimepicker1">
        <input type="text" class="form-control" id="date-birth" maxlength="10" />
        <span class="input-group-addon">
            <span class="glyphicon glyphicon-calendar"></span>
        </span>
    </div>                      
</div>

这是JS代码:

moment.locale('en', {
  week: { dow: 1 } // Monday is the first day of the week
});     

$("#datetimepicker1").datetimepicker({
    format: 'DD/MM/YYYY'
});

$("#date-birth").on("focus", function() {
    //open calendar
});

我的日历必须在点击日历图标(没关系)并且输入日期获得焦点时打开,之后,如果我在输入日期字段中写一个 fecha,日历 window 必须自动更新。

在 URL 中,有一个关于 No Icon (input field only) 的示例:,但我没有解决它。

感谢您的帮助。

您可以初始化您的日历添加 allowInputToggle 选项,以便在输入获得焦点时也打开它:

$("#datetimepicker1").datetimepicker({
    format: 'DD/MM/YYYY',
    allowInputToggle: true
});

如果您想在第一次打开日历时输入为空,也可以添加 useCurrent: false

您可以使用 keyup 侦听器在您键入日期时自动更新日历:

$("#date-birth").on("keyup", function() {
    var dt = moment(this.value, 'DD/MM/YYYY', true);
    if( dt.isValid() ){
        $('#datetimepicker1').data("DateTimePicker").date(dt);
    }
});

我认为您需要更改日期时间选择器的 css。只需添加一行,如下所示

来自

.bootstrap-datetimepicker-widget {
  list-style: none;
}

.bootstrap-datetimepicker-widget {
  list-style: none;
  display: block;
}