使用datepicker启用和禁用日期jquery

时间:2018-11-23 08:28:52

标签: javascript jquery html datepicker

我正在使用jquery datepicker。我设置了一个应该禁用的日期数组,这很好用:

    var vakantie = ["25-12-2018", "26-12-2018", "27-12-2018", "28-12-2018", "29-12-2018", "30-12-2018", "31-12-2018"];

function nietBeschikbaar(dt){

    var datestring = jQuery.datepicker.formatDate('dd-mm-yy', dt);
    return [dt.getDay() == 1 || dt.getDay() == 2 ? false : true && vakantie.indexOf(datestring) == -1 ];

};

jQuery("#datepicker").datepicker("option", "beforeShowDay", nietBeschikbaar);

现在,我也希望启用一个日期(每个星期一和星期二也都被禁用,但是这个日期是星期一)。使用此代码,我可以禁用除此日期以外的所有内容:

    var enableDays = ["24-12-2018"];

function enableAllTheseDays(date) {
    var sdate = $.datepicker.formatDate( 'dd-mm-yy', date)
    if($.inArray(sdate, enableDays) != -1) {
        return [true];
    }
    return [false];
}

jQuery("#datepicker").datepicker("option", "beforeShowDay", enableAllTheseDays);

但是现在我想结合这两个脚本,所以我想禁用'vakantie'数组,并启用'enableDays'数组。我不能让他们去打工,有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

这可能有效,请对其进行测试:

function enableAllTheseDays() {
    var sdate = $.datepicker.formatDate( 'dd-mm-yy', date);
    var evaluateArray = vakantie.some(function(item){
       return item == sdate;   
    });
    var arrayWithResult = [];
    arrayWithResult.push(evaluateArray);
    return arrayWithResult;
}

只需确保sdate是这种格式的字符串变量:

“ dd-mm-yy”

希望有帮助!