【问题标题】:Bootstrap date picker, enable a few days in daysOfWeekDisabled引导日期选择器,在 daysOfWeekDisabled 中启用几天
【发布时间】:2020-10-28 16:47:34
【问题描述】:

Bootstrap datePicker 允许我传递一个参数来禁用一周中的特定日期。像这样:

datePicker.datepicker({
    daysOfWeekDisabled: weekendDays
});

我希望能够在此禁用列表上启用特定日期。我试图使用beforeShowDay 选项,但似乎我可以禁用那里的日期,但我无法启用。

根据文档,如果我想选择值,我可以返回一个布尔值,或者我可以返回一个具有enabled 属性的对象,如下所示:

datePicker.datepicker({
    daysOfWeekDisabled: weekendDays,
    beforeShowDay: function (date) {
        var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
        if(workingDays.indexOf(string) > -1){
            return {enabled: true, classes: "test"};
        }
    }
});

我可以使用 beforeShowDay 添加课程,我可以禁用日期。但我无法启用它。

有人知道我该怎么做吗?

【问题讨论】:

    标签: javascript jquery datepicker bootstrap-datepicker


    【解决方案1】:

    我建议将禁用weekend 日期和启用某些日期的操作合二为一。

    例如:

    var dates = ["19/07/2020"];
    
    function disableDates(date) {
        let shouldDisable = false;
        
        // Disable dates if they are weekends
        if(date.getDay() == 0 || date.getDay() == 6){
          shouldDisable = true;
        }
        
        // Check if date is mentioned for enabling in the dates array. 
        var string = jQuery.datepicker.formatDate('dd/mm/yy', date);
        return [ !shouldDisable || dates.indexOf(string) != -1];
    }
    
    $(function() {
         $("#date").datepicker({
             beforeShowDay: disableDates
         });
    });
    

    这将提供对使用单一功能启用和禁用日期的更多控制。

    小提琴样例:https://jsfiddle.net/idhruvs/wdkprbsL/120/

    【讨论】:

      【解决方案2】:

      我最终解决了使用 onShow 这样的事件

      datePicker.datepicker({
          daysOfWeekDisabled: weekendDays,
          beforeShowDay: function (date) {
              var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
              if(workingDays.indexOf(string) > -1){
                  return {enabled: true, classes: "force-enabled-day"};
              }
          }
      }).on('show', function(e){
          $(".force-enabled-day").removeClass("disabled disabled-date");
      });
      

      我会认为 Dhruv 的回答是正确的,因为它是一个看起来比我的工作更优雅的解决方案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-03
        • 2013-06-09
        相关资源
        最近更新 更多