Ограничить bootstrap-datepicker только буднями?
есть ли в любом случае разрешить только выбор дня недели в выборе даты начальной загрузки, найденном ниже? 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();
    }
});  
Спасибо за любую помощь.
4 ответов
последняя версия от https://github.com/eternicode/bootstrap-datepicker уже есть возможность отключить выбор конкретных рабочих дней. От документы:
daysOfWeekDisabled
Строка, Массив. По умолчанию: ‘, []
дни недели, которые должны быть отключены. Значения от 0 (воскресенье) до 6 (суббота). Несколько значений должны быть разделены запятыми. Пример: отключить выходные дни:
'0,6'или[0,6].
другими словами, просто создайте экземпляр своего datepicker следующим образом:
$('#datepicker').datepicker({
    daysOfWeekDisabled: [0,6]
});
вот jsfiddle, демонстрирующий это:http://jsfiddle.net/vj77M/1/
** обновление **
Bootstrap datepicker теперь имеет . См. @фин ответим ниже.
** ОТВЕТ **
предполагая, что ваши недели начинаются в воскресенье:
$(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.эквивалент.(..) к правильным индексам.
конечно, это охватывает только событие click и заставляет вас двигаться в правильном направлении. Я уверен, что другие вещи, такие как клавиатура навигации должны быть решены.
редактировать
для последней версии используйте этот код, где appropiate
// 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,
})
})