【问题标题】:Enable and disable dates jquery using datepicker [duplicate]使用 datepicker 启用和禁用日期 jquery [重复]
【发布时间】:2018-11-23 08:28:52
【问题描述】:

我正在使用 jquery 日期选择器。我已经设置了一个应该禁用的日期数组,这工作正常:

    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”数组。我不能让他们一起工作,谁能帮帮我?

【问题讨论】:

  • 你已经问过这个问题了。如果您想添加更多信息,请编辑原文。
  • 对不起,你是对的。我现在编辑了原件。

标签: javascript jquery html datepicker


【解决方案1】:

这可能有效,请测试一下:

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"

希望对你有帮助!

【讨论】:

  • 感谢您的回答,不幸的是它不起作用。
  • 嘿@Mxkert,刚刚更新,在这里做了一些测试,现在似乎可以工作了,但请确定变量 sdate 的格式!
  • 嗨@TiagoM,我仍然无法让这个工作,也许这是我这边的错。不管怎样,谢谢你和我一起思考。同样正如 Rory 提到的,这篇文章是重复的,在另一篇文章中,我得到了一个对我有用的答案。 (stackoverflow.com/questions/53434238/…)。
猜你喜欢
  • 2020-10-27
  • 2013-06-28
  • 1970-01-01
  • 2017-09-06
  • 1970-01-01
  • 1970-01-01
  • 2017-07-31
  • 2021-01-05
  • 1970-01-01
相关资源
最近更新 更多