jquery - 如何防止 jQuery uidatepicker 在日历的所有月份中突出显示所选(或当前)日期?

标签 jquery datepicker uidatepicker

我已经多次浏览此插件的选项,但似乎找不到关闭此行为的方法:当前或选定的日期在小部件的所有月份中突出显示,而不仅仅是当前月份。例如,如果我选择 8 月 17 日,然后前进到 9 月、10 月等,那么这些月份中也会选择 17 日,这在我看来是没有意义的。我无法弄清楚它为什么这样做,甚至无法弄清楚它背后的基本原理(如果它是一个功能)(我想这可能是一个次要问题)。知道如何关闭它吗?所有月份的链接都被分配相同的 CSS 类。以下是我正在使用的选项:

var dates = $("#checkin").datepicker({
    changeMonth: true,
    numberOfMonths: 2,
    dateFormat: 'M d, yy'
});

最佳答案

该错误(或功能,但我希望不是)是在 jQuery UI 1.8.4 版本中引入的(因此 D Hoerster 发布的演示可以工作,因为它使用的是 1.8.2 版本)。它的来源是this version中的第8384行。由谷歌托管。它涉及日期选择器实际 HTML 的生成。它位于一个循环内,迭代每个要绘制的月份。上面写着

var selectedDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, inst.selectedDay));

现在,drawmonth/year是当前绘制的月份(废话),所以很明显发生了什么。结果就是您所说的问题 - 如果您选择一个月中的第 17 号,selectedDate当您迭代它们时,它们将被设置为每月的 17 日,并且这些将突出显示。根据变量名称( selectedDate )及其语义来判断,它应该改为声明

var selectedDate = this._daylightSavingAdjust(new Date(inst.selectedYear, inst.selectedMonth, inst.selectedDay));

有趣的是,这个错误在1.8.2版本中也存在,但是执行高亮的代码在之前的版本中并没有使用它。在 1.8.2 中,突出显示当前日期的方式如下(第 8446 行):

(printDate.getTime() == currentDate.getTime() ? ' ui-state-active' : '') + // highlight selected day

查看代码,很明显它应该像 1.8.4 版本中那样(使用 selectedDate 而不是 currentDate ):

(printDate.getTime() == selectedDate.getTime() ? ' ui-state-active' : '') + // highlight selected day

<小时/> 所以奇怪的是,自从selectedDate之后就没有再出现任何错误了。显然是错误的并且在多个地方使用。 (事实上​​,尽管使用了错误的变量来突出显示当前日期,但以前的版本中没有任何问题)我已经查看这段代码太久了,所以我不知道我是对的还是完全错了。尽管如此,对于想要进一步调查并可能进行错误报告的人来说,这应该是一个很好的基础。当我有时间(并且恢复理智)时,我最终会自己做这件事

关于jquery - 如何防止 jQuery uidatepicker 在日历的所有月份中突出显示所选(或当前)日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3505420/

相关文章:

objective-c - 观察 UIDatePicker 的变化

ios - 如何更改 UIPickerView 和 UIDatePicker 的字体颜色?

javascript - shown.bs.modal 当您关闭并重新打开模式时多次触发

javascript - 仪表图 Highchart 表盘样式问题

JQuery、MVC 和母版页

javascript - if javascript 中 .datepicker 属性的条件

wpf - 如何使用 Expression Blend 在 WPF 中编辑 DatePicker 的水印

iphone - UIDatePicker 仅显示月份和日期

javascript - 拉拉维尔 : can't I use enctype ='multipart/form-data' to POST non file inputs?

javascript - Ext js 使用另一个日期选择器的值处理设置日期选择器的 minDate