pickadate 使用变量设置禁用天数

pickadate set disabled days using a variable

我想根据 select 从 select 输入中编辑的内容动态设置禁用日期。 我的选项具有以下数据字段:

data-disableddays="2,3,4,5"

我的 select 上有一个 onchange 事件。 我得到了数据禁用天数的值:

var disableddays = $(this).find(':selected').data('disableddays');

console.log 输出正确 (2,3,4,5)

当我初始化 pickadate 时:

var picker = $('#tripstart').pickadate({
                        format: 'd.mm.yyyy',
                        min: new Date($mystart),
                        max: new Date($myend),
                        firstDay: 1,
                        disable: [
                          disableddays
                        ]
                      });

什么都没发生。将变量 disableddays 替换为“2,3,4,5”一切正常。 我必须做什么才能使这个变量在这个地方工作?

尝试这样做

var disableddays = $(this).find(':selected').data('disableddays');
disableddays = disableddays.split(',').map(day=>parseInt(day));
var picker = $('#tripstart').pickadate({
                        format: 'd.mm.yyyy',
                        min: new Date($mystart),
                        max: new Date($myend),
                        firstDay: 1,
                        disable: disableddays
                      });

基本上,disabledays 应该是一个整数数组。

因为你使用了字符串“2,3,4,5”而不是数组,你需要将字符串转换为数组,使用disableddays.split(","),如下所示:

var picker = $('#tripstart').pickadate({
                 format: 'd.mm.yyyy',
                 min: new Date($mystart),
                 max: new Date($myend),
                 firstDay: 1,
                 disable: disableddays.split(",")
             });