【问题标题】:jQuery datepicker disable sundays & specific array of datesjQuery datepicker 禁用星期天和特定日期数组
【发布时间】:2016-08-22 11:18:15
【问题描述】:

我在这方面已经走了很远,但停留在最后一部分。我基本上只需要禁用所有星期天,然后能够将日期添加到数组中以也被禁用,我知道单独禁用每个星期天的代码,但是当我尝试将它们放在一起时,我要么得到星期天的日期数组可选,要么另一种方式。我需要加入以禁用数组和星期天的两个部分在 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>

【问题讨论】:

    标签: jquery datepicker


    【解决方案1】:

    你可以试试这样的:

    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/

    【讨论】:

    • 你太棒了,非常感谢你的帮助!
    • 乐于助人,祝您有美好的一天!
    【解决方案2】:

    试试这个

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

    【讨论】:

    • 感谢您的回复,不幸的是,这不起作用,当我尝试这个时,日期选择器根本不会打开
    猜你喜欢
    • 2020-10-08
    • 1970-01-01
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    • 2012-05-20
    • 2012-04-02
    • 2010-10-15
    • 1970-01-01
    相关资源
    最近更新 更多