Answers:
您可以使用event changedate()
跟踪更改日期的时间,并使用datepicker('hide')
方法datepicker
进行选择后隐藏以下内容:
$('yourpickerid').on('changeDate', function(ev){
$(this).datepicker('hide');
});
更新
这是的错误autoclose: true
。此错误已在最新的master中修复。查看COMMIT。从获取最新代码GitHub
if (ev.viewMode === 'days') {$(this).datepicker('hide');}
因为您可能不想在选择一个月或一年之后隐藏
$(".date").datepicker({... autoclose: true, ... });
效果很好!
如果对任何人有帮助,则引导日期选择器的2.0版不再适用于已接受的答案。
这是我在我的产品上工作的方式:
$('yourpickerid').datepicker({
format: 'dd/mm/yyyy',
}).on('changeDate', function(e){
$(this).datepicker('hide');
});
请参阅http://bootstrap-datepicker.readthedocs.org/en/latest/events.html#changedate
如果您希望总体上覆盖日历的行为,请尝试编辑Datepicker函数(在我的示例中为第82行),
从
this.autoclose = false;
至
this.autoclose = true;
对我来说工作很好,因为我希望所有日历实例的行为都一样。
该行可以停止,通过以下行阻止输入元素的hide事件:
var your_options = { ... };
$('.datetimepicker').datetimepicker(your_options).on('hide', function (e) {
e.preventDefault();
e.stopPropagation();
});
在bootstrap 4中使用“ autoHide:true”
$('#datepicker1').datepicker({
autoHide: true,
format: 'mm-yyyy',
endDate: new Date()
});
您可以更改源代码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
}
即使我编写了以下格式,时钟仍然显示问题:'YYYY-MM-DD',
我必须设置pickTime: false
,更改后->隐藏,我必须关注- >显示
$('#VBS_RequiredDeliveryDate').datetimepicker({
format: 'YYYY-MM-DD',
pickTime: false
});
$('#VBS_RequiredDeliveryDate').on('change', function(){
$('.datepicker').hide();
});
$('#VBS_RequiredDeliveryDate').on('focus', function(){
$('.datepicker').show();
});