簡體   English   中英

將jquery datepicker設置為一周中的某些日子不可點擊

[英]Setting jquery datepicker certain days of the week unclickable

我有此功能,它將收集某些天的數值,以便在將禁用這些天的另一功能中使用。

/* grab off days*/
function off(){
    for (var key in offDays) {
        if (offDays.hasOwnProperty(key)) {
            return offDays[key];

        }
     }  
 }

例如,對於星期日和星期一,將返回0,1。 現在我想用那些日子來禁用datepicker上的日子,但是當我使用以下代碼時,它只禁用了orderpicker中的第一個。我想我需要以某種方式遍歷,但是如何?

var m = date.getMonth(), d = date.getDate(), y = date.getFullYear();
//console.log('Checking (raw): ' + m + '-' + d + '-' + y);
for (i = 0; i < disabledDays.length; i++) {
    if($.inArray((m+1) + '-' + d + '-' + y,disabledDays) !== -1 || new Date() > date) {
        //console.log('bad:  ' + (m+1) + '-' + d + '-' + y + ' / ' + disabledDays[i]);
        return [false];
    }
            if(date.getDay() === off()){
                return [false];
            }


}

檢查最后一個if語句

嘗試

var disabledDays = ["1-24-2014"];
var offDays = {
    "tues": 2,
    "weds": 3,
    "thurs": 4
};
var offds = $.map(offDays, function (day) {
    return day
})
$('input').datepicker({
    beforeShowDay: function (date) {
        var m = date.getMonth(),
            d = date.getDate(),
            y = date.getFullYear(),
            str = (m + 1) + '-' + d + '-' + y;
        if ($.inArray(str, disabledDays) !== -1 || new Date() > date) {
            return [false];
        }
        if ($.inArray(date.getDay(), offds) !== -1) {
            return [false];
        }
        return [true]
    }
})

演示: 小提琴

您可以使用beforeShowDay函數來檢查給定的日期是否已啟用:

beforeShowDay: function (a) {
    var d = a.getFullYear() + '-' + (a.getMonth() + 1) + '-' + a.getDate();
    if (d==='2014-1-20') {//WILL DISABLE 20 Jan 2014
        return [false, "", "disabled date"];
    } else {
        return [true, "", ""];
    }
}

這個小提琴在這里有一個工作樣本

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM