3

ここで、私は次のことを達成したい

  1. 日付ピッカーですべての休日を強調表示する
  2. 日付ピッカーで特定の日を無効にする
  3. 日付ピッカーで特定の週末を無効にする

それぞれのスニペットを別々に持っていますが、すべてまとめて欲しいです

フィドル:ワーキングデモ

休日をハイライト

var holydays = ['10/17/2013', '10/18/2013', '11/2/2013'];

function highlightDays(date) {
    for (var i = 0; i < holydays.length; i++) {
        if (new Date(holydays[i]).toString() == date.toString()) {
            return [true, 'highlight'];
        }
    }
    return [true, ''];

}

$(function () {
    $("#dp").datepicker({
        minDate: 0,
        dateFormat: 'mm/dd/yy',
        inline: true,
        numberOfMonths: [1, 2],
        dayNamesMin: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
        beforeShowDay: highlightDays,
    });
});

特定の日を無効にする

var disabledDays = ["10-20-2013", "10-21-2013", "11-15-2013", "11-17-2013"];
    function disableAllTheseDays(date) {
        var m = date.getMonth(), d = date.getDate(), y = date.getFullYear();
        for (i = 0; i < disabledDays.length; i++) {
            if($.inArray((m+1) + '-' + d + '-' + y,disabledDays) != -1) {
                return [false];
            }
        }
        return [true];
    }

週末を無効にする

$(function() {
        $( "#availability" ).datepicker({
            minDate: 0,
            dateFormat: 'mm/dd/yy',
            inline: true,
            numberOfMonths: [1, 2],
            dayNamesMin: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
            beforeShowDay: $.datepicker.noWeekends
        });
    });

誰でも私を助けることができます..

前もって感謝します。

4

4 に答える 4

5

変化する :

$(function () {
    $("#dp").datepicker({
        minDate: 0,
        dateFormat: 'mm/dd/yy',
        inline: true,
        numberOfMonths: [1, 2],
        dayNamesMin: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
        beforeShowDay: setCustomDate // <-----change function
    });
});

機能を追加:

function setCustomDate(date) {
    var clazz = "";
    var arr1 = highlightDays(date);
    if (arr1[1] != "") clazz = arr1[1];

    var arr2 = disableAllTheseDays(date);
    var arr3 = $.datepicker.noWeekends(date);

    return [(!arr2[0] || !arr3[0]) ? false : true, clazz];
}
于 2013-10-16T07:07:59.090 に答える
2

現在は 2014 年で、最小限のコードが必要です。これが日を無効にする私の方法です。

私の変数「特定」、0 <=特定<= 7

in my demo :

1 = sunday 2 = saturday 4 = Monday to friday

if specific == 5 that mean 4 + 1 so i allow Monday till friday + sunday.

7 は、ピッキングが許可されているすべての日を意味します。今から月 + 1 までしか選択できないことに注意してください

$( "#datepicker" ).datepicker({
    minDate:0,
    maxDate: '+1M-1D',
    dateFormat: "yy-mm-dd",
    beforeShowDay: function(date) {
        var day = date.getDay();
        if(day == 6)
            return [(specific & 2) > 0, ''];
        else if(day == 0)
            return [(specific & 1) > 0, ''];
        else
            return [(specific & 4) > 0, ''];
    }
});
于 2014-02-12T15:43:02.813 に答える