选择日期后,引导日期选择器不会自动关闭

我使用最新的Bootstrap datepicker.js。 一切正常,但是当我从下拉列表中选择一个日期时,它不会自动关闭它。 我在网上搜索并尝试在我的javascript中使用以下函数,如下所示:

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

但是当我使用Google Chrome Dev工具时,我意识到ev.viewmode未定义。 我不确定如何前进。

试试这个:

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

更新:

当您使用github上存在的更新版本的datepicker时, autoclose工作正常:

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

以上都没有为我工作,但是覆盖datepicker默认选项就像一个魅力,并且是一个单行:

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

我添加了autoclose:true, (最后用半逗号 ,它可以工作)

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

试试这个:

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

如果你有多个文本框已经应用了datepicker,那么旧的解决方案可能会导致问题,请尝试这样做,

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

请注意这一点, https://github.com/eternicode/bootstrap-datepicker/issues/500

对我来说,结果是bootstrap-datepicker文档中的拼写错误。 它不是“autoclose:true”,而是“autoClose:true”。

希望能帮助到你。

  1. 只需打开bootstrap-datepicker.js即可
  2. find:var defaults = $ .fn.datepicker.defaults(在我的案例中为1391行)
  3. 设置autoclose:true

保存并刷新您的项目,这应该做。

// 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) }] ]; }, 

当您使用类defaultdatepicker将鼠标hover在div上时。 将出现日历控件。 在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" }); }); }); 

这对我有用。

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

这对我有用

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