Я хочу отключить определенные праздники и дни недели в jQuery Datepicker

Я использую гравитационную форму, которая использует поле выбора даты jQuery. Я хотел бы отключить тот же день, воскресенье, субботу, среду и эти праздники: День труда (7 сентября), 2 октября, День Благодарения и на следующий день (26, 27 ноября), Рождество (25 декабря), Новый год (январь 1).

 var dateToday = new Date();
 dateToday.setDate(dateToday.getDate() + 1);
 jQuery("#input_2_1").datepicker({
     dateFormat: 'yy-mm-dd',
     minDate: dateToday,
     beforeShowDay: function(date) {
     return [!(date.getDay()==0||date.getDay()==6||date.getDay()==3||date.getDate() == "2020-09-07"||date.getDate() == "2020-11-26"||date.getDate() == "2020-11-27"||date.getDate() == "2020-12-25"||date.getDate() == "2020-01-01")]
  }
 });

Однако я также хочу включить эти среды: 9 сентября, 25 ноября, 23 декабря. Я не знаю, как это сделать, учитывая, что среды были отключены выше.

Я определенно делаю что-то не так здесь. Как я должен настроить это по-другому, чтобы выполнить это?


person Alex Douglas    schedule 07.08.2020    source источник
comment
Ознакомьтесь с датами ограничений Gravity Forms: gravitywiz.com/documentation/gravity-forms-limit- даты Это позволит вам установить общие правила и исключения из этих правил прямо из настроек поля.   -  person Dave from Gravity Wiz    schedule 07.08.2020
comment
Я бы с удовольствием, но, к сожалению, сейчас не могу себе позволить купить :(   -  person Alex Douglas    schedule 08.08.2020


Ответы (1)


Попробуйте это:

    // set unavailable dates
    var unavailableDates = ['26-11-2020','24-12-2020','25-12-2020'];
    var availableDates = ['9-9-2020','25-11-2020'];

    // check unavailable dates and verify if the weekday is approved
    function unavailable(date) {

        // beforeShowDay, get date
        dmy = date.getDate() + "-" + (date.getMonth()+1) + "-" + date.getFullYear();

        // inArray returns the index of the element, or -1, if element not found
        // if today is found in unavailableDates, return false
        if (jQuery.inArray(dmy, unavailableDates) != -1) {

            return [false];

        // if today is found in todays availableDates, return true
        } else if (jQuery.inArray(dmy, availableDates) != -1) {

                return [true];  

        } else {

            // if day is Sunday, Saturday, Wednesday, diable the day
            if( date.getDay() == 0 || date.getDay() == 3 || date.getDay() == 6 ) {
                return [false];
            } else{
                return [true];
            }   
        }
    }


    jQuery(document).ready(function($){

        $("#input_2_1").datepicker({

            minDate : 1,
            beforeShowDay: unavailable,

        }); 

    });
person James Valeii    schedule 15.08.2020