Bootstrap datepicker скрыть после выбора

Как скрыть календарь после выбора даты? Есть ли определенная функция, которую я могу использовать? Мой код ниже:

$('#dp1').datepicker({
    format: 'mm-dd-yyyy',
    startDate: '-15d',
    autoclose: true,
    endDate: '+0d' // there no convenient "right now" notation yet
});

Любая помощь будет оценена.

Ответ 1

Вы можете использовать событие changedate(), чтобы отслеживать, когда дата изменяется вместе с методом datepicker('hide'), чтобы скрыть datepicker после выбора:

$('yourpickerid').on('changeDate', function(ev){
    $(this).datepicker('hide');
});

Демо

UPDATE

Это была ошибка с autoclose: true. Эта ошибка была исправлена ​​у последнего мастера. СМОТРИТЕ COMMIT. Получить последний код из GitHub

Ответ 2

Если какая-либо помощь кому-либо, версия 2.0 бутстрапа datepicker больше не работает с принятым ответом.

Вот как я заработал на моем:

$('yourpickerid').datepicker({
    format: 'dd/mm/yyyy',
}).on('changeDate', function(e){
    $(this).datepicker('hide');
});

См. http://bootstrap-datepicker.readthedocs.org/en/latest/events.html#changedate

Ответ 3

$('#input').datepicker({autoclose:true});

Ответ 4

  • Просто откройте bootstrap-datepicker.js
  • найти: var defaults = $.fn.datepicker.defaults
  • set autoclose: true

Сохраните и обновите свой проект, и это должно быть сделано.

Ответ 5

Если вы хотите переопределить поведение календаря вообще, в глобальном масштабе, попробуйте отредактировать функцию Datepicker (в моем примере это строка 82),

от

    this.autoclose = false;

к

    this.autoclose = true;

Работала отлично для меня, так как я хотел, чтобы все мои экземпляры календаря ведут себя одинаково.

Ответ 6

Проблема может быть остановлена, блокируя событие hide для элемента ввода этими линиями:

var your_options = { ... };
$('.datetimepicker').datetimepicker(your_options).on('hide', function (e) {
    e.preventDefault();
    e.stopPropagation();
});

Ответ 7

$('yourpickerid').datetimepicker({
           pickTime: false
}).on('changeDate', function (e) {
           $(this).datetimepicker('hide');
});

Ответ 8

Закрыть datetimepicker при выборе даты (datetimepicker показывает дату со временем)

$('.datepicker').datepicker({
    autoclose: true,
    closeOnDateSelect: true
}); 

Ответ 9

Вы можете изменить исходный код, bootstrap-datepicker.js. Добавьте this.hide(); как нэ

  if (this.viewMode !== 0) {
    this.date = new Date(this.viewDate);
    this.element.trigger({
        type: 'changeDate',
        date: this.date,
        viewMode: DPGlobal.modes[this.viewMode].clsName
    });
    this.hide();//here
 }

Ответ 10

Я получил идеальное решение:

$('#Date_of_Birth').datepicker().on('changeDate', function (e) {
    if(e.viewMode === 'days')
        $(this).blur();
});

Ответ 11

$('.datepicker').datepicker({
    autoclose: true
}); 

Ответ 12

Возникла проблема с часами, которые все еще отображаются, даже если я написал в формате: "ГГГГ-ММ-ДД",

Я должен установить pickTime: false и после change-> скрыть, я должен focus-> показать

$('#VBS_RequiredDeliveryDate').datetimepicker({
  format: 'YYYY-MM-DD',
  pickTime: false
});

$('#VBS_RequiredDeliveryDate').on('change', function(){
    $('.datepicker').hide();
});

$('#VBS_RequiredDeliveryDate').on('focus', function(){
    $('.datepicker').show();
});

Ответ 13

Я изменил на datetimepicker и отформатировал до 'DD/MM/YYYY'

$("id").datetimepicker({
    format: 'DD/MM/YYYY',
}).on('changeDate', function() {
    $('.datepicker').hide();
});

Ответ 14

Для выбора даты и времени

$('yourpickerid').datetimepicker({
        format: 'dd/mm/yyyy',
}).on('changeDate', function(e){
        $(this).datetimepicker('hide');
});

Ответ 15

По крайней мере, в версии 2.2.3, которую я использую, вы должны использовать autoClose вместо autoClose. Дело о письме.

Ответ 16

Используйте это для datetimepicker, он отлично работает

$('#Date').data("DateTimePicker").hide();