javascript - 更改 jQuery 日期范围选择器以禁止包含禁用日期的日期范围

标签 javascript jquery date jquery-ui jquery-ui-datepicker

我创建了一个 jQuery 日期范围选择器。我能够选择日期范围并将它们显示在文本框中。现在我需要的是,我需要禁用某些日期并为这些日期分配不同的类。

E.g. I must be able to give class A to April 2, class B to April 4 etc.

我已经尝试了我在谷歌搜索时得到的结果,但没有任何帮助。我想要做的是传递一些应该分配给这些日期的日期和类(class)。该类应该分配给那些日期,而且我必须可以选择启用或禁用这些日期。

接下来我要尝试做的是,如果两个日期之间存在禁用日期,则无法选择该范围。

E.g. Suppose I want to select April 2 to April 7 and April 5 is a disabled date. 
Then I could be able to select either April 2 to April 4 or April 6 to April 7.

这意味着只能选择一个范围。请帮忙解决这个问题。

请找到 fiddle here :

最佳答案

您必须创建两个数组,一个将 css 类映射到您要禁用的每个日期 class:date,另一个将 css 类映射到您要指定的日期特殊类,然后:

  1. beforeShowDay 中,检查日期是否在禁用日期数组中,如果找到,则使用关联的类并返回 false,示例:[false,"classA"] ,如果不是,检查特殊数组并返回带有 true 的类,否则就做你现在正在做的任何事情。
  2. onSelect 中,检查所选范围是否包含数组中的任何日期并采取相应行动
  3. 然后在 class:date 数组中,您可以添加任何您希望用其自己的类禁用的 class:date,代码将处理它<

完整的工作解决方案 here .

注意事项:

  1. 代码禁用了 4 月 22 日和 5 月 15 日(尝试调整日期)
  2. 代码为 4 月 15 日和 5 月 10 日指定了一个特殊的类。
  3. css 类在 td 上作为 background-color 应用,它显示不正确,您必须修改选择器的 css 才能做到
  4. 帮助我提供这个答案的引用是 here

关于javascript - 更改 jQuery 日期范围选择器以禁止包含禁用日期的日期范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22979341/

相关文章:

javascript - 如何访问 jQuery .on() 的 "first"选择器?

jquery - 主动 anchor 导航

java - 时区偏移显示无效值

JavaScript .toString() 默认值

javascript - 三个JS中这段代码片段的含义

javascript - 使用 jquery 为每个输入值动态创建 JSON

JavaScript/jQuery - 性能问题

javascript - jQuery 时间选择器和 jQuery 日期对 : How to set end time into 15mins

JavaScript 日期时区奇怪的行为

php - 从日期获取 PHP 中的月份名称