在jQuery UI datepicker中禁用所有星期日和某些特定日期

9w11ddsr  于 9个月前  发布在  jQuery
关注(0)|答案(4)|浏览(113)

我试图禁用所有星期日和jQuery UI日期选择器中的一些特定日期。这些条件一起在我的代码中不起作用。只有星期日被禁用。下面是代码

var array = [, '2024-01-07', '2024-01-08', '2024-01-09', '2024-01-10']
$("#datepicker").datepicker({
  beforeShowDay: function(date) {
    var day = date.getDay();
    var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
    return [(day != 0), array.indexOf(string) == -1]
  }
});

字符串
我希望所有的星期日和一些日期被禁用在datepicker。

y0u0uwnf

y0u0uwnf1#

它必须是:

// date is not a sunday and
// date is not present in the array
return [day !== 0 && array.indexOf(string) === -1];

字符串
请注意,您只需要设置返回数组(docs)的第0项。

qmb5sa22

qmb5sa222#

你能更新一下这条线吗

return [(day!=0), array.indexOf(string) == -1 ]

字符串
与此

return [!((date.getDay() === 0) || array.includes(string)), true];

brccelvz

brccelvz3#

参见**Demo**
使用jquery禁用datepicker中的所有星期日和某些特定日期

$(function() {
  var holidays = ['2024-1-7','2024-1-8','2024-1-9','2024-1-10'];
  function DisableDate(date) {
    var day = date.getDay();
    if (day != 0) {
      var d = date.getDate();
      var m = date.getMonth();
      var y = date.getFullYear();
      for (i = 0; i < holidays.length; i++) {
        if($.inArray((y) + '-' + (m+1) + '-' + d, holidays) != -1) {
          return [false];
        }
      }
      return [true];
    } else {
      return [day != 0, ''];
    }
  }

  $('#datepicker').datepicker({
    onClose: function(dateText, inst) { 
        $(this).attr("disabled", false);
    },
    beforeShow: function(input, inst) {
      $(this).attr("disabled", true);
    },
    beforeShowDay: DisableDate,
    minDate: 0,
    dateFormat: 'yy-mm-dd',
  });
});

字符串

5q4ezhmt

5q4ezhmt4#

要在jQuery datepicker中禁用所有星期日和特定日期,您可以修改代码如下:

var array = ['2024-01-07', '2024-01-08', '2024-01-09', '2024-01-10'];

$("#datepicker").datepicker({
  beforeShowDay: function (date) {
    var day = date.getDay();
    var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
    return [(day !== 0 && array.indexOf(string) === -1)];
  }
});

字符串
这里的关键更改是确保您要启用的日期返回true。在这种情况下,return中的条件检查日期是否不是Sunday(day!== 0)以及日期是否不在指定的数组中。
这样,星期日和数组中的特定日期都将在日期选择器中被禁用。日期选择器将只允许选择不在指定数组中的非星期日。

相关问题