JQuery UI Datepicker禁用周末但允许特定日期?

时间:2016-02-01 22:20:25

标签: javascript jquery jquery-ui jquery-ui-datepicker

我目前正在使用datepicker并且我使用beforeShowDaynoWeekends来禁用周末选择工作正常,但是我想重新启用某些周末以供选择(例如情人节)因为我的商店会特意送货。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

嗯,你必须在UI DatePicker功能上做一点作弊,因为你必须手动设置代表活跃日期的值。

首先,看一下活动日的HTML结构:

<td data-year="2016" data-month="2" data-event="click" data-handler="selectDay" class=" ">
<a href="#" class="ui-state-default">11</a>
</td>

这就是非活动日的样子:

<td class=" ui-datepicker-week-end ui-datepicker-unselectable ui-state-disabled ">
<span class="ui-state-default">12</span>
</td>

所以,你要做的是:

  • 在DOM中标识要激活的月份中的某一天。 Ej,$("table.ui-datepicker-calendar").find("td:contains(14)")
  • 使用ui-datepicker-unselectable
  • 删除ui-state-disabledremoveClass()
  • 使用data-year="2016" data-month="2" data-event="click" data-handler="selectDay"方法
  • 添加缺少的属性:attr()
  • 使用<span><a>
  • 将内部remove()转换为append()
  • 最后,您还必须在datePicker上手动调用setDate以设置单击该元素时所需的日期。

它看起来很丑陋并不那么简单,但它对我有用,因为DatePicker中没有内置任何内容。