我正在创建一个带有基于日期时间的 javascript 弹出日历输入的 Drupal 表单,该表单允许用户设置他们想要拿起或放下东西的日期。但是,我找不到一种方法来限制可选择哪些日期作为输入。例如,如果我们只在周一-周三-周五营业,我不希望人们能够使用选择器来指示他们想要在周日取货。
对于日历输入验证和可用的阻塞机制,我已经看得很远了,但到目前为止还没有运气。
Drupal 使用 jQuery datepicker 来选择日期。我还没有研究过 Date 模块是如何实现 js 的,但您可能可以为其添加额外的选项。或者,您可以自己添加日期选择器。你可以很容易地用 jQuery datepicker 得到你想要的:
$("#test").datepicker({
beforeShowDay: function(date) {
if (date.getDay() % 2 == 1 && date.getDay() < 6) {
return [true];
}
else {
return [false];
}
}
});
beforeShowDay 是一个每天运行的函数,它应该返回一个列表,其中第一项是一个布尔值,它决定你的一天是否可选。第二个值是要添加的可选类,第三个值也可以使用,但现在不记得那是什么了。
我认为你最好的选择是找到你能找到的最简单的日期选择器(因为最简单的通常 == 最容易修改)并且只是硬编码它以跳过你在构建日期选择器时不想要的日子。
但是,这只修复了它的 JS 方面,因此您可能需要编写一个小的自定义模块来执行服务器端验证。