我创建了一个jQuery日期范围选择器。我可以选择日期范围并在文本框中显示它们。现在我需要的是,我需要禁用某些日期并为这些日期分配不同的类。
E.g. I must be able to give class A to April 2, class B to April 4 etc.
我尝试了谷歌搜索时得到的结果,但没有任何帮助。我想要做的是传递一些应该分配给那些日期的日期和类。该类应该分配给那些日期加上我必须有选项来启用或禁用这些日期。
我要做的下一件事是,如果两个日期之间有一个禁用日期,则无法选择该范围。
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.
这意味着只能选择一个范围。请帮忙解决这个问题。
请找小提琴here:
答案 0 :(得分:5)
你必须创建两个数组,一个用css类映射你想要被禁用的每个Date class:date
,另一个用css类映射你想要给它一个特殊类的日期,然后:
beforeShowDay
内,检查日期是否在禁用日期数组中,如果找到,请使用关联的类并返回false,例如:[false,"classA"]
,如果没有,请检查特殊情况数组并返回带有true的类,否则就做你现在做的任何事情。onSelect
内,检查所选范围是否包含数组中的任何日期并采取相应措施class:date
数组中,您可以使用自己的类添加您希望禁用的任何class:date
,代码将处理它完整的解决方案here。
注意:
background-color
作为td
,它没有正确显示,您必须修改选择器的css才能执行1} LI>
答案 1 :(得分:2)
您需要实施beforeShowDay
和onSelect
功能,如以下演示所示:
<强> http://jsfiddle.net/salman/H3ra3/ 强>
代码可能看起来令人生畏但事实并非如此。基础知识如下:
dateConfig
变量
日期信息存储在一个关联数组中,我们在其中存储日期是否可选和/或其CSS类名。
<强> beforeShowDay
强>
让date
成为函数被称为的日期
让date1
为开始日期文本框内的日期
让date2
为结束日期文本框中的日期
date
无法选择,则为
返回[false, date_class or ""]
date1
date2
且date
介于date1 ...date2
之间,那么
返回[true, selected_class]
date
小于date1
则为
返回[false, date_class or ""]
(不允许第二个日期小于第一个日期)date
等于date1
则为
返回[true, selected_class]
(允许第二个日期与第一个日期相同)[true, date_class or ""]
<强> onSelect
强>
让date1
成为开始日期文本框中的日期
让date2
为结束日期文本框中的日期
date1
和date2
,那么
date1 ...date2
之间,则会抛出错误