jQuery UI Datepicker - разрешать только определенные будни - PullRequest
7 голосов
/ 19 декабря 2010

Я использую jquery UI datepicker для огромного проекта, и теперь я понимаю, что мне нужно разрешить только определенные дни недели в некоторых областях. Я прочитал их документацию и ничего не нашел об этом .. Я знаю, что есть некоторые сценарии выбора даты для jq, которые могут это сделать, но я не хочу использовать для этого дополнительный сценарий, если это возможно. Кто-нибудь знает обходной путь для этого? Может я что-то не так понял в их документации?

ПРИМЕЧАНИЕ: пример желаемого поведения: http://codeasp.net/blogs/raghav_khunger/microsoft-net/1088/jquery-datepicker-disable-specific-weekdays

Заранее спасибо за помощь, ура Педро

Ответы [ 5 ]

7 голосов
/ 15 февраля 2012
$( ".datepicker.future" ).datepicker('option','beforeShowDay',function(date){
    var td = date.getDay();
    var ret = [(date.getDay() != 0 && date.getDay() != 6),'',(td != 'Sat' && td != 'Sun')?'':'only on workday'];
    return ret;
});
5 голосов
/ 21 сентября 2016
$('selector').datepicker({
beforeShowDay: $.datepicker.noWeekends // disable weekends
});
5 голосов
/ 27 февраля 2012

@ Ян Томас забыл добавить переменную td .Правильный код:

$( ".datepicker.future" ).datepicker('option','beforeShowDay',function(date){
    var td = date.getDay();
    var ret = [(date.getDay() != 0 && date.getDay() != 6),'',(td != 'Sat' && td != 'Sun')?'':'only on workday'];
    return ret;
});
2 голосов
/ 17 января 2011

Из документов:

beforeShowDay: функция принимает в качестве параметра дату и должна возвращать массив с [0], равным true / false, указывающим, является ли эта дата доступной для выбора, [1] равнак именам классов CSS или '' для презентации по умолчанию, и [2] необязательная всплывающая подсказка для этой даты.Он вызывается для каждого дня в датчике перед его отображением.

Например, см. Здесь:

http://codeasp.net/blogs/raghav_khunger/microsoft-net/1088/jquery-datepicker-disable-specific-weekdays

1 голос
/ 12 июля 2017

Ответ Джин Маллет (beforeShowDay: $.datepicker.noWeekends) прост и элегантен.

Однако, если вы уже вызываете функцию, используя beforeShowDay (как я это делал в моем случае), вот как вы можете отключить определенные дни недели (в данном случае, воскресенье и субботу), связанные с Остальная часть вашей функции:

beforeShowDay: function (date) {

    /* your other function code here */

    if (date.getDay() > 0 && date.getDay() < 6) {
        return [true, ''];
    } else {
        return [false, ''];
    }
}

enter image description here

...