禁用日期选择器js中的时间

时间:2018-08-23 19:47:27

标签: javascript datepicker

使用http://amsul.ca/pickadate.js/api/

我正在尝试使用pickatime js做类似的事情:

var close_times = [{from: [0,0], to: [23,45]}];
var enable_times = [{from: [9,0], to: [17,0]}];
var overbooked_times = [{from: [14,0], to: [15,0]}];
booking_form.timepicker.set( 'disable', close_times  );
booking_form.timepicker.set( 'enable', enable_times  );
booking_form.timepicker.set( 'disable', overbooked_times  );

这是一种用于预订系统的系统,在该系统中,可以按标准的开放时间进行预订。但有时我需要关闭已满的空位。

我无法使上面的代码工作-选择器中永远不会禁用overbooked_times;有什么我想念的吗?

1 个答案:

答案 0 :(得分:0)

我从来没有使用过这个库。但是我刚刚检查了文档。

http://amsul.ca/pickadate.js/api/#method-set-disable-enable

在他们的示例中,我发现如果您使用disable enable disable,则启用时间不会清除。

检查禁用/启用时间,例如时间范围。如果按以下顺序使用按钮:禁用,启用,禁用,则启用时间不会清除。

我认为您要么必须先禁用启用时间,然后才能禁用它。或者,也许只使用一个功能就可以了。

默认情况下,它们全部都启用了,为什么呢:禁用,启用,禁用?

您可能只需要以下内容:

var disabled_times = [{from: [0,0], to: [9,0]}, {from: [17,0], to: [24,45]}];
var overbooked_times = [{from: [14,0], to: [15,0]}];
// added this for as an example in case you've got more overbooked times than this... which might be the case
for(var i=0, i < overbooked_times.length; i++){
    disabled_times.push(overbooked_times[i]);
}
booking_form.timepicker.set( 'disable', disabled_times  );

当然,如果您可以刷新此值,则需要:

booking_form.timepicker.stop().start().set( 'disable', disabled_times  );