jQuery datepicker禁用星期日&特定的日期数组

时间:2016-08-22 11:18:15

标签: jquery datepicker

我已经相当远,但最后还是坚持了下来。我基本上只需要禁用所有星期日,然后能够添加日期到一个数组也被禁用,我知道代码,以便单独禁用每个,但当我尝试将它们放在一起时,我或者得到星期日可选择的日期数组或另一种方式。我需要加入以使数组和星期日禁用的两个部分都在beforeshowdays函数中,我知道我不能有两个我只是把两个都放进去所以你可以看到我正在尝试的东西。谢谢你的帮助

<script>
    var array = ["2016-08-29","2013-03-15","2013-03-16"]
</script>

<script>  

$( function() {

var today = new Date();

$( "#datepicker" ).datepicker({
    dateFormat: 'dd MM yy',
    beforeShowDay: function(date) {
        var day = date.getDay();
        return [(day != 0), ''];
    },
    beforeShowDay: function(date) {
       var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
        return [ array.indexOf(string) == -1 ]
    },
    //beforeShowDay: $.datepicker.noWeekends,
    firstDay: 1,
    minDate: today.getHours() >= 14 ? 2 : 1,
    maxDate: '+1m',
    onSelect: function(dateText, inst) { 
        $('#checkout_attribute_1').val(dateText);
    }
  });
 } );
</script>

2 个答案:

答案 0 :(得分:0)

试试这个

beforeShowDay: function(date) {
    var day = date.getDay();
    var string = jQuery.datepicker.formatDate('yyyy-mm-dd', date);
    if (day == 0){
      return [false];
    }
    else if(array.indexOf(string) != -1){
      return [false];
    }
    else{
      return [true];
    }
 }

答案 1 :(得分:0)

您可以尝试这样的事情:

var array = ["2016-08-29", "2013-03-15", "2013-03-16"]

$(function() {
  var today = new Date();
  $("#datepicker").datepicker({
    dateFormat: 'dd MM yy',
    beforeShowDay: function(date) {
      var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
      if (contains(array,string)) {
        debugger;
        return [false, '']
      } else {
        var day = date.getDay();
        return [(day != 0), ''];
      }
    },
    //beforeShowDay: $.datepicker.noWeekends,
    firstDay: 1,
    minDate: today.getHours() >= 14 ? 2 : 1,
    maxDate: '+1m',
    onSelect: function(dateText, inst) {
      $('#checkout_attribute_1').val(dateText);
    }
  });
});

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

https://jsfiddle.net/9hrhyd4q/