2017-05-29 74 views
0

我想編輯jquery.ui.datepicker中的beforeShowDay函數。 這是在日期選擇器的 beforeShowDay線,我試圖取代:禁用星期五和星期六在Datepicker

beforeShowDay: null, // Function that takes a date and returns an array with 
     // [0] = true if selectable, false if not, [1] = custom CSS class 
     name(s) or '', 
     // [2] = cell title (optional), e.g. $.datepicker.noWeekends 

我有搜索周圍試圖找到正確的代碼,沒有運氣來取代它。 我發現這個小提琴; disable 1 day in datepicker

我已經編輯這個小提琴,併成功地禁用週五和週六用下面的代碼:

$("#datepicker").datepicker({ 
    beforeShowDay: function(date) { 
     return [date.getDay() == 0 || date.getDay() == 1 || date.getDay() == 2 || date.getDay() == 3 || date.getDay() == 4 ] ; 
    } 
}); 

然而,當我將其複製並粘貼到jquery.ui.datepicker日曆不起作用,我獲取控制檯錯誤(未捕獲的SyntaxError:意外的令牌)。

我在做什麼用以下替換 beforeShowDate:

beforeShowDay: function(date) { return [date.getDay() == 0 || date.getDay() == 1 || date.getDay() == 2 || date.getDay() == 3 || date.getDay() == 4 ] ; }

誰能指教一下我做錯了,我怎麼能得到這個正常工作?

+0

你不需要複製粘貼任何東西放入'jquery.ui.datepicker'。總是避免修改從第三方網站下載的jQuery插件。上面的代碼應該進入你自己的html頁面。 – vijayP

+0

嗨vijayP,我試圖把這個代碼放到窗體的html中,但是窗體現在不加載: '' 我不同意關於編輯beforeShowDay的jquery.ui.datepicker,因爲它已經被註釋掉了關於編輯的模糊線索,這意味着有一種編輯方式和 –

回答

1

你不應該編輯的jQuery UI插件直接

如果你真的想那麼你必須粘貼此代碼替換爲空。但它不是不推薦

function(date) { 
    var show = true; 
    if(date.getDay()==6||date.getDay()==0) show=false; 
    return [show]; 
},//don't forget comma after the function 

正確的做法是在您自己的js文件中配置jquery ui date-picker時傳遞函數。

$("#datepicker").datepicker({ 
    beforeShowDay: function(date) { 
     var show = true; 
     if(date.getDay()==6||date.getDay()==0) show=false 
     return [show]; 
    } 
}); 
+0

的問題非常感謝,它在jquery.ui.datepicker中完美工作: 'beforeShowDay:function(date ){ var show = true; if(date.getDay()== 5 || date.getDay()== 6)show = false return [show]; },' –

+0

爲了清楚起見,我將由Nadir Laskar提供的第一個代碼直接插入jquery.ui.datepicker的beforeShowDate元素中,並且它正常工作。我花了2天試圖找到一個解決方案,並嘗試從各種小提琴,鋼筆和stackoverflow幾十個片段,但這是第一個實際上工作:-) fyi ....我只做一個改變;從0&6到5&6 –

2

daysOfWeekDisabled

Days of the week that should be disabled. Values are 0 (Sunday) to 6 (Saturday). Multiple values should be comma-separated. Example: disable weekends: '06' or '0,6' or [0,6].

使用daysOfWeekDisabled

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

Working fiddle

編輯

我在閱讀和後上方約bootstarp日期選擇器的回答做了錯誤。

的jQuery UI日期選擇器試試這個

beforeShowDay: function(d) { 
    return [!(d.getDay()==0||d.getDay()==6)] 
} 

Working fiddle

+0

我試過,但日曆不加載(即使清除緩存和刷新後),這就是我所做的: 我替換了這個: 'beforeShowDay:空,//函數採用一個日期,並返回 \t \t \t // [0] =真,如果可選擇的,假如果沒有,[1] =自定義CSS類名(多個)或'的陣列', \t \t \t // [2] =單元格標題(可選),例如。$ .datepicker.noWeekends' 有了這個: 'beforeShowDay:$( '#日期選擇器')日期選擇器({ daysOfWeekDisabled:[0,6] });' 也許我的實現是不正確的? –

+0

@MichaelJoseph實現將與我在我的例子中所做的相同 – Manoj

+0

您讀了錯誤的關於jquery UI datepicker而不是bootstrap datepicker –

0

你可以試試這個,

$("#datepicker").datepicker({ 
    beforeShowDay: function(date) { 
    var day = date.getDay(); 
    return [(day != 5 && day != 6), '']; 
    } 
}); 

http://jsfiddle.net/nWAnz/238/

+0

嗨Trimantra,即週六和週日,而我想禁用週五和週六 –

+0

我更新了我的答案 –

相關問題