【问题标题】:Bootstrap Datepicker restrict available dates to be selectedBootstrap Datepicker 限制选择的可用日期
【发布时间】:2014-02-04 10:49:16
【问题描述】:

我正在使用 eternicode bootstrap-datepicker;

我想知道如何配置 Bootstrap Datepicker 以限制选择的可用日期。我的观点是,当某些数据在特定日期准备好时。该日期可由用户选择。

目前,我从现在开始限制 7 天。但是,周六和周日是没有数据的日子;

这样,我可以只显示日期范围,但这些范围之间没有“漏洞”。所以,我想知道如何配置 Bootstrap Datepicker 来限制从用户中选择的可用日期。

【问题讨论】:

  • 据我所知,Bootstrap 中没有集成 DatePicker。您是否使用第三方日期选择器(可能是 JQuery-ui?)
  • The docs 给出一个禁用日期的例子。只需根据需要修改return
  • 对不起,你完全正确。我正在使用 eternicode bootstrap-datepicker

标签: javascript jquery twitter-bootstrap datepicker


【解决方案1】:

Bootstrap 本身没有我上次检查的内置日期选择器。但是,如果您谈论的是eternicode 写的bootstrap-datepicker third party library。我相信它支持与jquery datepicker 相同的事件。所以:

演出前 函数(日期)。默认值:$.noop

一个以日期为参数并返回下列值之一的函数:

  • 未定义无效
  • 布尔值,指示此日期是否可选
  • 一个字符串,表示要应用于日期单元格的附加 CSS 类
  • 具有以下属性的对象:
    • 启用:与上面的布尔值相同
    • 类:与上面的字符串值相同
    • 工具提示:通过 HTML 标题属性应用到该日期的工具提示

这样使用(下面的例子只允许选择周末和下面自定义数组中的两个日期):

// use this to allow certain dates only
var availableDates = ["15-1-2014","16-1-2014"];

$(function()
{
    $('#txtDate').datepicker({ 
      beforeShowDay:
          function(dt)
          { 
            // use dt.getDay() to restrict to certain days of the week
            // or a custom function like "available" below to do more complex things
            return [dt.getDay() == 0 || dt.getDay() == 6 || available(dt), "" ];
          }
    });
});



function available(date) {
    dmy = date.getDate() + "-" + (date.getMonth()+1) + "-" + date.getFullYear();
    if ($.inArray(dmy, availableDates) != -1) {
        return true;
    } else {
        return false;
    }
}

最后,working FIDDLE to show above in action.. 使用 jquery datepicker,但相同的区别...

【讨论】:

【解决方案2】:

制作如下:

var available_Dates = ["23/03/2014","21/03/2014"];
            $('.datepicker').datepicker({
                language: "pt-BR",
                autoclose: true,
                format: "dd/mm/yyyy",
                default: 'dd/mm/yyyy',
                beforeShowDay: function(date){
                    var formattedDate = $.fn.datepicker.DPGlobal.formatDate(date, 'dd/mm/yyyy', 'pt-BR');
                    if ($.inArray(formattedDate.toString(), available_Dates) == -1){
                        return {
                            enabled : false
                        };
                    }
                    return;
                }
            });

【讨论】:

    猜你喜欢
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多