使用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;有什么我想念的吗?
答案 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 );