bootstrap datepicker 單獨設定某些日期的特殊背景顏色和某些月份特殊背景
JQuery bootstrap datepicker
這個日期簡直非常好用,不過專案有這樣的需求,點選日期查詢月份,但需要先判斷哪些月份有資料,然後再設定這幾個月份為特殊的背景顏色,以便使用者知道哪些月份有資料,就不用一個個月份去點選檢視資料了,這樣是不是很方便,百度上基本沒有答案,連了外網檢視到的資料如下,正是參考下面這些連結,才做出效果的:
//當彈出日期,選擇月份時,觸發方法,設定有資料的月份的背景顏色為藍色
//changeMonth月份切換觸發,show當選擇器顯示時被觸發。
var eventDates = {};
eventDates[ new Date( '2016-11-04' )] = new Date( '2016-11-04' );
eventDates[ new Date( '2016-10-06' )] = new Date( '2016-10-06' );
eventDates[ new Date( '2016-12-07' )] = new Date( '2016-12-07' );
eventDates[ new Date( '2016-09-25' )] = new Date( '2016-09-25' );
//WagesNow.init();
$(".date-picker").datepicker({
// autoclose: true,
format : 'yyyy-mm-dd',
//weekStart : 1,
//autoclose : true,
//startView : 2,
//maxViewMode : 1,
//minViewMode : 1,
//forceParse : false,
language : 'zh-CN',
//設定有資料的月份為特殊背景
beforeShowDay: function( date ) {
var highlight = eventDates[date];
if( highlight ) {
alert("設定高亮背景"+date);
// return [true, "event", highlight]; //這個方式是錯誤的額
return {classes: 'active'};
} else {
return [true, '', ''];
}
}
});
注意點:----------要注意的是上面的設定月份特殊背景的這句:return [true,"event",highlight]
是無法設定背景顏色的,經過實驗,是return {classes:'active'}
才是有用的,其中class
是日曆控制元件自帶的選中的class
,如下圖+執行效果:
至此就完成效果了,你只需要將需要特殊處理的月份放在陣列裡面然後進行判斷即可,有問題可以交流
這個日期控制元件的話,如果你的需求是隻能顯示年月,日並不需要顯示,還要實現某些月份有資料,則顯示特殊背景的功能,控制元件並沒有提供什麼回撥函式,不過還是可以利用beforeshowday
,根據date
,轉換成年月的格式,然後遍歷span
標籤,取到相應的月份,如果一直,則增加特殊背景顏色,如下程式碼:
//發ajax獲取有資料的月份
var wageMonths={};//從資料庫中查詢有資料的月份list集合
jQuery(document).ready(function() {
//*******************日期控制元件中,設定有資料的月份的背景顏色*****************************
$.ajax({
url : "wageHisMonths.action",
type : "POST",
data : null,
async : false,
cache : false,
contentType : false,
processData : false,
success : function(data) {
if (data != null) {
wageMonths= data;
//alert("獲取有資料的月份"+wageMonths);
}
}
});
//當彈出日期,選擇月份時,觸發方法,設定有資料的月份的背景顏色為藍色
//changeMonth月份切換觸發,show當選擇器顯示時被觸發。
$(".date-picker").datepicker({
format : 'yyyy-mm',
weekStart : 1,
autoclose : true,
startView : 3,
maxViewMode : 1,
minViewMode : 1,
forceParse : false,
language : 'zh-CN',
beforeShowDay : function(date) {
setTimeout(function() {
for(var i=0;i<wageMonths.length;i++){
//獲取使用者點選介面的年份
var datamonth = formatDate(date);
var strCurr = new Array(); //定義一陣列
strCurr = datamonth.split("-");
//後臺資料獲取的年份進行比較,然後這是某些月份的背景顏色
strselect = wageMonths[i].split("-"); //字元分割 ,取2016-10的月份10,然後轉換成文字10月份
//比較當前年份和後臺傳過來的資料年份
if(strCurr[0] == strselect[0]){
//遍歷下方所有的資料,然後進行比較
$(".table-condensed td span").each(function() {
if ($(this).text() == dightConvertMonth(strselect[1])) {
$(this).addClass("activeClass");
}
});
}
}
}, 1000);
return {classes: 'activeClass'};
}
});
});
//*******************日期控制元件中,設定有資料的月份的背景顏色**********結束*******************
用到的date
時間轉換成年月,一年將月份數字轉換成文字的方法:
// 為了在設定月份有資料則顯示背景的功能判斷當中:
// Wed Oct 05 2016 00:00:00 GMT+0800 (中國標準時間)轉換為普通的時間格式
function formatDate(date) {
var y = date.getFullYear();
var m = date.getMonth() + 1;
m = m < 10 ? '0' + m : m;
// var d = date.getDate();
// d = d < 10 ? ('0' + d) : d;
return y + '-' + m;
};
//日期控制元件中,將月份數字轉換成文字月份,qiulinhe:2016年11月14日10:40:15
function dightConvertMonth(dig) {
switch (parseInt(dig)) {
case 1:
return "一月"
break;
case 2:
return "二月"
break;
case 3:
return "三月"
break;
case 4:
return "四月"
break;
case 5:
return "五月"
break;
case 6:
return "六月"
break;
case 7:
return "七月"
break;
case 8:
return "八月"
break;
case 9:
return "九月"
break;
case 10:
return "十月"
break;
case 11:
return "十一月"
break;
case 12:
return "十二月"
break;
default:
return "一月"
break;
}
}
相關文章
- 設定toast的字型顏色和背景顏色AST
- markdown字型顏色和背景設定
- css 設定背景顏色CSS
- CSS設定元素的背景顏色CSS
- svg 圖示設定背景顏色SVG
- IOS設定狀態列的背景顏色iOS
- iOS button背景顏色狀態設定iOS
- 取得某些特殊資料夾路徑
- UITabBarController、TabBar背景顏色設定、TabBarItem顏色處理UItabBarController
- 設定文字的選中狀態背景顏色
- 微信讀書怎麼設定背景顏色 微信讀書設定背景教程
- win10系統如何設定Word背景顏色_win10 word頁面背景顏色設定步驟Win10
- CSS設定選中網頁文字時的背景和顏色CSS網頁
- TextView設定部分或指定背景色和字型顏色TextView
- 為每一個table單元格設定不同的背景顏色
- CSS 中的顏色、背景和剪下CSS
- 單擊表格行能夠將設定當前行背景顏色
- bootstrap30-輔助類展示不同的背景顏色boot
- 強大的CSS:顏色、背景和剪下CSS
- 動態隱藏某些特殊型別的SAP CRM附件型別
- Markdown(入門)——文字設定 ->(字型、字號、顏色和背景色)
- win10 如何設定txt背景綠色 win10如何在txt文件修改背景顏色Win10
- Eclipse背景顏色修改Eclipse
- iOS UISearchBar 修改背景顏色iOSUI
- js設定頁面TR 的屬性 背景顏色 樣式JS
- 如何設定小程式頁面各個部分的背景顏色?
- JavaScript點選設定背景顏色的選項卡程式碼JavaScript
- android--設定TextView部分文字的顏色和背景(高亮顯示)AndroidTextView
- eclipse怎麼簡單恢復預設背景顏色Eclipse
- qt 設定QTextEdit文字框中指定內容塊的背景顏色QT
- Flutter改變狀態列字型、狀態列背景顏色、Appbar背景顏色的方式FlutterAPP
- iphone 更改鍵盤背景顏色iPhone
- 點選按鈕設定其背景顏色程式碼例項
- 更改NavMenu 導航選單啟用時的背景顏色
- 想把圖片當背景,但是其他控制元件背景設為透明色後,顯示的是背景顏色的問題解決控制元件
- CSS-背景顏色|background-colorCSS
- css3背景顏色漸變CSSS3
- JavaScript 背景顏色隨機變化JavaScript隨機