JQuery UI datepicker突出显示非选定日期的特定日期

时间:2016-01-27 00:48:27

标签: javascript jquery datepicker

我有2个日期选择器。一个是入住日期。另一个是结账日期。我正在使用Jquery,因为我以不同的方式使用它来移动,否则我会使用bootstrap datepicker,因为它已经提供了这个功能,我不需要自己编写代码。

我在做什么: 我在AngularJS中使用它,并且我在指令中初始化了datepicker。选中签入字段后,将打开结帐字段,以便用户选择结帐日期。 minDate(或签入日期)td一直到结帐日期tds被突出显示,因此它看起来像一个日期范围选择器,而不是真正的日期范围选择器。这使用户能够更改其中一个日期而无需更改另一个日期。如果那有意义的话。如果没有,我可以详细说明。

问题/疑问: 这可能是也可能不是愚蠢的问题,但如何在checkin datepicker上显示结帐日期?不使用日期范围选择器?基本上,我需要将一个类定位或添加到datepicker上的日期,该日期不是minDate或maxDate,并且尚未被选中。

这可以在beforeShowDay之前完成吗?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

感谢@Bindrid指出我正确的方向。对于那些可能想看我做了什么的人,你走了。

内角指令:

       function showCheckout () {
            var coFormated = new Date(scope.co);
            if (date.getTime() === coFormated.getTime()) {
                console.log(date);
                console.log(coFormated);
                return [true, "ui-state-highlight"];
            } else {
                return [true, '', ''];
            }
        }
        function startDatepicker () {
            element.datepicker({
                minDate: 0,
                numberOfMonths: numMonths,
                showOtherMonths: true,
                gotoCurrent: true,
                beforeShowDay: function(date) {
                    var coFormated = new Date(scope.co);
                    if (date.getTime() === coFormated.getTime()) {
                        return [true, "highlight_end"];
                    } else {
                        return [true, '', ''];
                    }
                },
                onSelect: function (date) {
                    scope.$apply(function () {
                        ngModel.$setViewValue(new Date(date));
                    });
                }
            });
        }
        scope.$watch('co', (function (newValue) {
            startDatepicker();
            if (scope.ci) {
                $('.ci').datepicker("setDate", scope.ci );
            }
        }), true);