选择日期后,引导日期选择器不会自动关闭
我使用最新的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
工作正常:
以上都没有为我工作,但是覆盖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”。
希望能帮助到你。
- 只需打开bootstrap-datepicker.js即可
- find:var defaults = $ .fn.datepicker.defaults(在我的案例中为1391行)
- 设置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); });