通过JQuery datePicker中的beforeShowDay返回多个值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过JQuery datePicker中的beforeShowDay返回多个值相关的知识,希望对你有一定的参考价值。

我一直在尝试通过beforeShowDay禁用多个日期,其中一些是日期,有些是星期几。

很遗憾,我只能禁用其中两个。

var unavailableDates = ["2/6/2020", "4/6/2020"];

beforeShowDay: function(date) 
    // Disabling Sundays
    var day = date.getDay();
    return [day != 0,''];
    // Disabling Dates Array
    findDate = date.getDate() + "/" + (date.getMonth() + 1) + "/" + date.getFullYear();
    if ($.inArray(findDate, unavailableDates) == -1) 
        return [true, ""];
     else 
        return [false, "", "Unavailable"];
    

PS,默认情况下,我需要禁用所有星期天,但只有在数组中找到日期才可以。

答案

请尝试下面的代码,在其中我将禁用数组中的日期以及向日期元素中添加突出显示类。

<html>

<head>
    <link rel="stylesheet" href="//code.jquery.com/ui/1.12.0/themes/base/jquery-ui.css" />
    <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
    <script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script>

    <script>
        $(function () 
           var dateArray  = [ "2020-03-17", "2020-03-18","2020-03-20"];
            $("#datepicker").datepicker(
                dateFormat: 'yy-mm-dd',
                beforeShowDay: function (date) 
                    var day = date.getDay();
                    // First convert all values in dateArray to date Object and compare with current date
                    var dateFound =  dateArray.find(function(item) 
                        var formattedDate = new Date(item);
                        return date.toLocaleDateString() === formattedDate.toLocaleDateString();
                    )
                     // check if date is in your array of dates
                    if(dateFound) 
                        // if it is return the following.
                        return [false, 'css-class-to-highlight', 'tooltip text'];
                     else 
                        // default
                        // Disable all sundays
                        return [(day != 0), '', ''];
                    

                
            );

        );
    </script>
    <style type="text/css">
       

        .css-class-to-highlight a
           background-color: blue !important;
           color: #fff !important;
        
    </style>
</head>

<body>
    <form>
        <div>
           <div id="datepicker"></div>
        </div>
    </form>
</body>

</html>

以上是关于通过JQuery datePicker中的beforeShowDay返回多个值的主要内容,如果未能解决你的问题,请参考以下文章

在 django 中使用 Datepicker(来自 Jquery)

Jquery datepicker 没有通过 URL 从 MySql 数据库中获取结果?

jQuery UI 中的 datepicker( )方法

Jquery datepicker - 只有日期和月份

MVC 项目中的 jQuery 错误:Datepicker 不是函数

jquery.datePicker日历控件中的一个小问题?????????