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();