jQuery日期选择器禁用周日和特定日期数组

3
我已经做得很好了,但卡在了最后一部分。我基本上只需要禁用所有的星期天,然后能够将日期添加到数组中以禁用它们。我知道如何禁用每个星期天,但当我尝试将它们组合在一起时,要么会选择有数组日期的星期天,要么就是另一种情况。我需要加入的两个部分来禁用数组和星期天在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

试一下这个

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];
    }
 }

谢谢回复,不幸的是这个方法并没有起作用,当我尝试时日期选择器根本不会打开。 - shaneklive

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/


你太棒了,谢谢伙计,真的很感激你的帮助! - shaneklive
很高兴能够帮助,祝你有美好的一天! - Quentin Roger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接