Отключить понедельник и субботу на JQuery DatePicker - PullRequest
0 голосов
/ 21 сентября 2018

Мне нужен jQuery datepicker для отключения массива конкретных дат, а также всех понедельников и всех суббот.Я забил первые два гола, но не третий (отключить субботу).Вот код:

let fechasEspecificas = ["2018-11-06"]

jQuery.datepicker.setDefaults({
  "minDate": 2,
  "maxDate": new Date(2019,0,31),
  beforeShowDay: function(date) {
      let string = jQuery.datepicker.formatDate('yy-mm-dd', date);
      if (contains(fechasEspecificas,string)) {
        return [false, '']  // here are specific dates disabled
      } else {
        let day = date.getDay();
        return [(day != 1), '']; // here are mondays disabled
      }
    }
});


function contains(a, obj) {var i = a.length;while (i--) {if (a[i] === obj){return true;}}return false;}

JSFIDDLE demo

Как можно расширить код, чтобы отключить также субботу?

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

Вы должны объединить дни, которые вы отключите с помощью операции AND

let fechasEspecificas = ["2018-11-06"]

jQuery.datepicker.setDefaults({
    "minDate": 2,
  "maxDate": new Date(2019,0,31),
    beforeShowDay: function(date) {
      let string = jQuery.datepicker.formatDate('yy-mm-dd', date);
      if (contains(fechasEspecificas,string)) {
        return [false, '']
      } else {
        let day = date.getDay();
        return [(day != 1) && (day != 6), '']; //Add the day number 6 for disable saturdays as well
      }
    }
});


function contains(a, obj) {var i = a.length;while (i--) {if (a[i] === obj){return true;}}return false;}


jQuery('input').datepicker();
0 голосов
/ 21 сентября 2018

Вы можете изменить return [(day != 1), '']; на return [(day != 1 && day != 6), ''];

Полный код:

let fechasEspecificas = ["2018-11-06"]

jQuery.datepicker.setDefaults({
    "minDate": 2,
  "maxDate": new Date(2019,0,31),
    beforeShowDay: function(date) {
      let string = jQuery.datepicker.formatDate('yy-mm-dd', date);
      if (contains(fechasEspecificas,string)) {
        return [false, '']
      } else {
        let day = date.getDay();
        return [(day != 1 && day != 6), ''];
      }
    }
});


function contains(a, obj) {var i = a.length;while (i--) {if (a[i] === obj){return true;}}return false;}


jQuery('input').datepicker();

Это отключит понедельник и субботу.

...