Javascript setDateDisabled+;开始/结束日期中断引导日期选择器

Javascript setDateDisabled+;开始/结束日期中断引导日期选择器,javascript,jquery,bootstrap-datepicker,Javascript,Jquery,Bootstrap Datepicker,我在用这个,我反对一种奇怪的行为 当我尝试使用带有默认值和选项的动态选项时,日期选择器似乎不允许我再更改月份 最奇怪的是,在调用setDatesDisabled之前,一个简单的alert()似乎可以纠正错误 我的最后一个需要是动态添加一些disabledDate,使用函数作为数据提供程序 简化代码: // enable the datepicker on fields $('.date-picker').datepicker({ format: '

我在用这个,我反对一种奇怪的行为

当我尝试使用带有默认值和选项的动态选项时,日期选择器似乎不允许我再更改月份

最奇怪的是,在调用
setDatesDisabled
之前,一个简单的
alert()
似乎可以纠正错误

我的最后一个需要是动态添加一些disabledDate,使用函数作为数据提供程序

简化代码:

        // enable the datepicker on fields
    $('.date-picker').datepicker({
            format: 'yyyy-mm-dd',
            startDate: '2016-04-01',
            endDate: '2016-08-15',
            datesDisabled: ['2016-04-21','2016-04-20','2016-04-13']
        })
        .on('show', function(ev){
            // @TODO check why bug here...
        // alert('hi'); // uncomment to patch bug
            $(this).datepicker('setDatesDisabled', ['2016-04-17','2016-04-16']);

        });
检查以复制

是否有人面临同样的问题/有办法在飞行中禁用某个日期


我已经在eternicode Github上做了一些修改,因为我认为这可能是一个内部错误。

这很可能是因为日期选择器
'show'
事件在日期选择器日历打开时导航时多次触发

在调用者已打开时设置禁用日期会导致调用者被重新计算和重新加载,因此它会导航回当前选定日期所在的月份-这使得无法导航到具有选定日期的页面(如果没有选定日期,则会出现半工作场景)

不确定这是否适用于您的场景,但当您仅在未打开日历的情况下设置禁用日期时,这应该有效

我变了

.on('show', function(ev){

这似乎很好,请参阅更新的小提琴:

第二个稍微“黑”的解决方案是,您可以禁用自动
showOnFocus
,并手动检查日历是否未打开+设置新的禁用日期+在聚焦字段时手动触发
show
。这不是最好的方法,但在等待bug报告的回复时可能是最好的方法;)

在这里可以看到一种方法:

=>当您使用TAB键切换到下一个字段时,单击上的将不会触发(正如所预期的那样单击),因此它不会使用我的自定义日期。。。只有一半是这样的:-/我已经尝试了一些关于聚焦的
的东西,但它和
节目一样,日期选择器弗里兹•乌乌•布拉格•耶普,添加了第二个可能更适合你的解决方案好的谢谢+1,我会等到周一再验证,如果有人有“合法”的方法,但我会选择黑客版本,我想。。。
$('.date-picker').on('click', function(ev){