我正在使用结帐页面上的Pickadate.js库为客户选择订购产品的收集日期。
在后端,客户端可以阻止某些日子,这样客户端就不能选择这一天。就像。星期天,因为商店星期天不营业。
我正在像这样初始化这个库:
/* 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');在结帐页面上,客户可以在有不同收集时间的两个商店之间进行选择,因此日历需要能够选择要选择的商店,并在此基础上显示可用于收集的天数。
我把残疾人的日子设置成这样:
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;
}一旦选择了商店,我就调用:
picker.set('disable', get_disabled_days(store_id));此函数正确地返回天数组(作为整数)并阻塞正确的日期。
一旦顾客改变了商店,我的问题就来了。它没有重置禁用天数数组,而是简单地在所选存储的禁用天数上添加。因此,如果客户选择第二家商店,日历将屏蔽第一家选定商店和第二家选定商店的天数。
我尝试停止()库并重新初始化它,但是我不知道如何清除禁用的日期数组,并在客户选择新商店后重新设置它。
发布于 2017-10-10 11:43:00
如果我正确地理解了这一点,您需要重置“数据报警器”中的日期,以便当新存储被选中时,它只禁用与该存储有关的日期。
正如医生们所指定的,
这里需要注意的一点是,“设置”已启用或禁用的东西会将新元素添加到项集合中以禁用,而不是用新集合完全替换它们。
那么,在运行禁用调用之前,您可以启用所有的日期吗?
// Enable all the dates
picker.set('enable', true)
picker.set('disable', false)
picker.set('disable', get_disabled_days(store_id));https://stackoverflow.com/questions/46664105
复制相似问题