首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pickadate.js动态更改禁用天数

Pickadate.js动态更改禁用天数
EN

Stack Overflow用户
提问于 2017-10-10 10:09:53
回答 1查看 1.1K关注 0票数 0

我正在使用结帐页面上的Pickadate.js库为客户选择订购产品的收集日期。

在后端,客户端可以阻止某些日子,这样客户端就不能选择这一天。就像。星期天,因为商店星期天不营业。

我正在像这样初始化这个库:

代码语言:javascript
复制
/* Initiate the Datepicker */
        var $dateInput = $('#collection-date').pickadate({
            firstDay: 2,
            onSet: function(e) {
                if(e.select) {
                    $('#select-time').slideDown();
                    var timeInput = $('#collection-time').pickatime();
                } else {
                    $('#select-time').slideUp();
                }
            },
        });
        var picker = $dateInput.pickadate('picker');

在结帐页面上,客户可以在有不同收集时间的两个商店之间进行选择,因此日历需要能够选择要选择的商店,并在此基础上显示可用于收集的天数。

我把残疾人的日子设置成这样:

代码语言:javascript
复制
function get_disabled_days(store_id) {

        var days_array = [];
        days_array = $('#store-' + store_id).find('.disabled-days').attr('data-disabled-dates').split(',').map(function(item) {
            return parseInt(item, 10);
        });

        //console.log(days_array);

        return days_array;

    }

一旦选择了商店,我就调用:

代码语言:javascript
复制
picker.set('disable', get_disabled_days(store_id));

此函数正确地返回天数组(作为整数)并阻塞正确的日期。

一旦顾客改变了商店,我的问题就来了。它没有重置禁用天数数组,而是简单地在所选存储的禁用天数上添加。因此,如果客户选择第二家商店,日历将屏蔽第一家选定商店和第二家选定商店的天数。

我尝试停止()库并重新初始化它,但是我不知道如何清除禁用的日期数组,并在客户选择新商店后重新设置它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-10 11:43:00

如果我正确地理解了这一点,您需要重置“数据报警器”中的日期,以便当新存储被选中时,它只禁用与该存储有关的日期。

正如医生们所指定的,

这里需要注意的一点是,“设置”已启用或禁用的东西会将新元素添加到项集合中以禁用,而不是用新集合完全替换它们。

那么,在运行禁用调用之前,您可以启用所有的日期吗?

代码语言:javascript
复制
// Enable all the dates
picker.set('enable', true)
picker.set('disable', false)

picker.set('disable', get_disabled_days(store_id));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46664105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档