将bootstrap-datepicker限制为仅工作日?

2021/01/30 16:31 · jquery ·  · 0评论

无论如何,是否在下面的引导日期选择器中仅允许工作日选择?
https://github.com/eternicode/bootstrap-datepicker/

我正在实例化日期选择器,如下所示:

$('#datepicker').datepicker();

/* Update datepicker plugin so that MM/DD/YYYY format is used. */
$.extend($.fn.datepicker.defaults, {
    parse: function (string) {
        var matches;
        if ((matches = string.match(/^(\d{2,2})\/(\d{2,2})\/(\d{4,4})$/))) {
            return new Date(matches[3], matches[1] - 1, matches[2]);
        } else {
            return null;
        }
    },
    format: function (date) {
        var
        month = (date.getMonth() + 1).toString(),
        dom = date.getDate().toString();
        if (month.length === 1) {
            month = "0" + month;
        }
        if (dom.length === 1) {
            dom = "0" + dom;
        }
        return month + "/" + dom + "/" + date.getFullYear();
    }
});  

谢谢你的帮助。

来自https://github.com/eternicode/bootstrap-datepicker的最新版本已经可以选择禁用特定工作日。文档

daysOfWeekDisabled

字符串,数组。默认值:“,[]

应该在星期几禁用。值是0(星期日)到6(星期六)。多个值应以逗号分隔。示例:禁用周末:'0,6'[0,6]

换句话说,只需像这样实例化日期选择器:

$('#datepicker').datepicker({
    daysOfWeekDisabled: [0,6]
});

这是一个展示此内容的jsfiddle:http : //jsfiddle.net/vj77M/1/

**更新**

Bootstrap日期选择器现在具有一个daysOfWeekDisabled选项。请参阅下面的@fin答案。

**旧答案**

这是一个工作演示

假设您的星期几从星期日开始:

$(function() {
    function disableWeekends($this) {
        var $days = $this.find('.datepicker-days tr').each(function() {
            var $days = $(this).find('.day');
            $days.eq(0).addClass('old').click(false); //Sunday
            $days.eq(6).addClass('old').click(false); //Saturday
        });

    }

    $('#dp1').datepicker({
        format: 'mm-dd-yyyy'
    });

    // get instance of the jQuery object created by
    // datepicker    
    var datepicker = $('#dp1').data('datepicker').picker;

    // disable weekends in the pre-rendered version
    disableWeekends(datepicker);

    // disable weekends whenever the month changes
    var _fill = datepicker.fill;
    datepicker.fill = function() {
        _fill.call(this);
        disableWeekends(this.picker);
    };

});​

如果没有,只需将$ days.eq(...)更改为正确的索引。

当然,这仅涵盖了click事件,并带您朝正确的方向前进。我非常确定可能需要解决其他问题,例如键盘导航。


编辑

对于最新版本,请在适当的地方使用此代码

// get instance of the jQuery object created by datepicker    
var datepicker = $('#dp1').data('datepicker');

// disable weekends in the pre-rendered version
disableWeekends(datepicker.picker);

// disable weekends whenever the month changes
var _fill = datepicker.fill;
datepicker.fill = function() {{
    _fill.call(this);
    disableWeekends(datepicker.picker);
}};

您也可以尝试一下。

onRender: function(date) {
    return date.getDay() == 0 || date.getDay() == 6 ? 'disabled' : '';
}

希望它能帮助某人。:)

$(document).ready(function(){


var date_input=$('input[name="date"]'); 

var container=$('.bootstrap-iso form').length>0 ? $('.bootstrap-iso form').parent() : "body";

date_input.datepicker({


format: 'dd/mm/yyyy',

container: container,

weekStart: 0,

daysOfWeekDisabled: "0,1,2,3,4,5",

daysOfWeekHighlighted: "6",

todayHighlight: true,

autoclose: true,


})

})
本文地址:http://jquery.askforanswer.com/jiangbootstrap-datepickerxianzhiweijingongzuori.html
文章标签: ,   ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!