Javascript pickadate使用变量设置禁用的天数

Javascript pickadate使用变量设置禁用的天数,javascript,jquery,pickadate,Javascript,Jquery,Pickadate,我想根据从选择输入中选择的内容动态设置禁用的天数。 “我的选项”具有以下数据字段: data-disableddays="2,3,4,5" 我的select上有一个onchange事件。 在这里,我得到了数据禁用日期的值: var disableddays = $(this).find(':selected').data('disableddays'); console.log输出为正确的2,3,4,5 初始化pickadate时: var picker = $('#tr

我想根据从选择输入中选择的内容动态设置禁用的天数。 “我的选项”具有以下数据字段:

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应该是一个整数数组。

尝试这样做

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而不是数组,所以需要使用disabledays.split将字符串转换为数组,如下所示:

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

由于使用了字符串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(",")
             });

非常感谢。这是工作!但是我还想用第二个选项来扩展它,比如一个特定的日期:disable:disabledday,[新日期'2020-07-13']当我不使用disable:[]时,我只能传递特定的日期或disabledday。。。有机会解决这个问题吗?您可以随时将新日期“2020-07-13”推到disableddays。禁用日期。推新日期'2020-07-13'完美。谢谢先生:谢谢。这是工作!但是我还想用第二个选项来扩展它,比如一个特定的日期:disable:disabledday,[新日期'2020-07-13']当我不使用disable:[]时,我只能传递特定的日期或disabledday。。。有机会解决这个问题吗?您可以随时将新日期“2020-07-13”推到disableddays。禁用日期。推新日期'2020-07-13'完美。谢谢主席先生: