根据选择值更改禁用jQueryUI datepicker日期

时间:2016-03-09 06:12:55

标签: javascript php jquery jquery-ui datepicker

当从SELECT列表中选择一个值时,现有的空数组var disableddates = [];会以“2016-03-21”格式填充日期列表。

我想要一个jquery UI datepicker来禁用事件后数组中的日期,但它根本不起作用。

 $( "#datepicker" ).datepicker({ 
        beforeShowDay: DisableSpecificDates,
        dateFormat: "yy-mm-dd",
        // rest of the code

function DisableSpecificDates(date) {
        var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
        return [disableddates.indexOf(string) == -1];
    }

当我在代码运行之前将disableddates设置为特定日期或多个日期时,它实际上被禁用,因此这里唯一的问题是我无法使用datepicker来禁用上述事件的日期。

另外,如果我使用事件beforeShow代替beforeShowDay,则不会发生任何事情。

A console.log确认数组确实已经填充,所以我确定这只是datepicker事件工作方式的问题。

有任何建议或解决方案吗?

1 个答案:

答案 0 :(得分:0)

最后想出了一个相当简单的解决方案。每次填充数组后,我都会在datepicker上调用refresh方法。

$.each(data.response, function(i, item) {
    disableddates.push(item);
});

// end array population

$( "#datepicker" ).datepicker( "refresh" );