选择日期的范围和jQuery的日期选择器高亮(Select a Range of dates and

2019-10-17 03:05发布

我想强调或更改范围jQuery的日期选择器日期的CSS。 我希望用户能够点击开始日期和结束日期,并有该范围之间的所有日期一并突出。 我能够在单击时在此范围内创建日期的数组,但由于某些原因,我可以一个类不能添加到它更改CSS。

我怎么能取红枣进行阵列,然后添加一个CSS类,他们都改变背景/亮点?

任何帮助将不胜感激!

谢谢

Answer 1:

好了,所以假设你已经在阵列中的用户所选择的日期。 您可以使用“beforeShowDay”选项指定将度过每一天在当前可见月份迭代函数,你的函数可以再比较对您阵列中的每个日期和应用CSS类,其中有一个匹配。

因此,例如初始化像这样的日期选择器...

jQuery(".cal").datepicker({
    beforeShowDay: checkDates
})

和功能checkDates()会是这个样子(假设你的数组称为dateArray ....

function checkDates(theDate){
    for(i=0;i<dateArray.length;i++){
        if(dateArray[i].valueOf()===thedate.valueOf()){
            return [false,"cssClass","title"];
        }else return [true,""]
    }
})

这将班级“的CssClass”申请的日期,如果日期包含在dateArray内

在return语句中的true / false位确定日期是可选择的,并标明“标题”该位是HTML title属性(提示)

铌。 这比较日期最近的毫秒,所以你可能需要修改它只是比赛日



Answer 2:

我已经从日期为一个datepicker和一个最新的一个datepicker成功地做到了这一点,所以我修改了它的一个日期选择器。 以下是代码:

 $(function () {
                var today = new Date();
                var thisYear = (today).getFullYear();
                var fromDate = '1/1/2000'   //this is the initial from date to set the datepicker range
                var toDate = '1/7/2000' // this is the initial to date to set the datepicker range

//... initialize datepicker....
      },
      beforeShowDay: function(date){
            //if the date is in range
            if (date >= fromDate && date <= toDate) { 
               return [true, 'ui-individual-date', '']; //applies a css class to the range
             }
             else {
                return [true, '', ''];
              }
        },
       onSelect: function (dateText, obj) {

    //sets the new range to be loaded on refresh call, assumes last click is the toDate              
         fromDate = toDate; 
         toDate = new Date(dateText); 

        $(".classDp1").datepicker("refresh"); 
        $(".classDp2").datepicker("refresh"); 
      },

每次刷新beforeShowDay功能时间被称为新没有fromdate和todate范围。 具有功能以外的变量和内修改它们使每个点击应用从CSS高亮。



文章来源: Select a Range of dates and Highlight in jQuery Datepicker