Подтвердить что ты не робот

Bootprap datepicker не закрывается автоматически после выбора даты

Я использую последний Bootstrap datepicker.js. Все работает отлично, за исключением того, что когда я выбираю дату из раскрывающегося списка, она автоматически не закрывает ее. Я искал веб и пытался использовать следующую функцию в своем javascript, как показано ниже:

 $('#selectDate').datepicker({
    autoclose: true
}).on('changeDate', function (ev) {
    (ev.viewMode == 'days') ? $(this).datepicker('hide') : '';      
});

но когда я использую инструменты Google Chrome Dev, я понял, что ev.viewmode был undefined. Я не уверен, как двигаться вперед.

4b9b3361

Ответ 1

Попробуйте следующее:

$('#selectDate').datepicker()
.on('changeDate', function(ev){                 
    $('#selectDate').datepicker('hide');
});

Update:

autoclose отлично работает, когда вы используете обновленную версию datepicker, присутствующую в github:

https://github.com/eternicode/bootstrap-datepicker

Ответ 2

Я добавил autoclose: true, запятой в конце и он работает)

 $('.datepicker').datepicker({
    format: 'dd/mm/yyyy',
    todayHighlight:'TRUE',
    autoclose: true,
})

Ответ 3

Ни одно из вышеперечисленных не работало для меня, однако переопределение параметра по умолчанию datepicker работало как шарм и является однострочным:

$.fn.datepicker.defaults.autoclose = true;

Ответ 4

Попробуйте следующее:

$('#selectDate').datepicker().on('changeDate', function(ev)
{                 
     $('.datepicker').hide();
});

Ответ 5

Если у вас есть несколько текстовых полей, для которых вы применили средство выбора даты, то старое решение может вызвать проблемы, попробуйте вместо этого,

$('.datepicker').datepicker({
     format: "dd/mm/yyyy",
     autoclose: true,
}).on('changeDate', function (ev) {
     $(this).datepicker('hide');
});

Посмотрите это, https://github.com/eternicode/bootstrap-datepicker/issues/500

Примечание: не забывайте, что мы используем селектор классов jquery, поэтому вам нужно применить класс datepicker к вашему текстовому полю.

Ответ 6

  • Просто откройте bootstrap-datepicker.js
  • find: var defaults = $.fn.datepicker.defaults(Строка 1391 в моем случае)
  • set autoclose: true

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

Ответ 7

Для меня это оказалось опечаткой в ​​документации bootstrap-datepicker. Вместо "autoclose: true" это "autoClose: true".

Надеюсь, что это поможет.

Ответ 8

//10000% работы Перейдите в файл bootstrap-datepicker.js

Найти это:

'mousedown touchstart': $.proxy(function(e){
                    // Clicked outside the datepicker, hide it
                    if (!(
                        this.element.is(e.target) ||
                        this.element.find(e.target).length ||
                        this.picker.is(e.target) ||
                        this.picker.find(e.target).length
                    )) {
                        this.hide();  //remove this
                    }
                }, this)
            }]
        ];
    },

Ответ 9

Когда вы наводите курсор мыши на элемент div с помощью класса defaultdatepicker. Появится элемент управления календаря. На Mouseleave он исчезнет.

 $(document).on("focus", ".defaultdatepicker", function () {

        $(this).datepicker({
            format: 'dd/mm/yyyy',
            todayHighlight: 'TRUE',
            autoClose: true,
        });

        $('#datepicker').css({ "opacity": "1" });
    });

    $('.defaultdatepicker').on('mouseleave', function () {
        $('.datepicker').fadeOut(function () {
            $('.formattedStartDate').attr('class', 'formattedStartDate');

            $('#datepicker').css({ "opacity": "0" });
        });
    });

Ответ 10

Это работает для меня.

$(".date-picker").datepicker( {
    format: "yyyy-mm-dd",
}).on('change', function (ev) {
    $(this).datepicker('hide');
});

Ответ 11

Это сработало для меня

$(".date-picker").change(function() { 
    setTimeout(function() {
        $(".date-picker").datepicker('hide'); 
        $(".date-picker").blur();
    }, 50);
});