Bootstrap datepicker仅显示日期
是否可以仅在Bootstrap datepicker中显示日期 ?
我只使用以下方法显示数月和数年 –
$("#year").datepicker({ format: " yyyy", viewMode: "years", minViewMode: "years" }); $("#month").datepicker({ format: " mm", viewMode: "months", minViewMode: "months", maxViewMode: 0 });
一个现场演示 ,仅显示年份和月份字段中的年份和月份选择。 我想在日期字段中仅显示1到31之间没有月份,年份在顶部以及没有日期名称的日期 。
是的,有可能,但有点复杂,你必须:
- 将
format
选项设置为d
(或dd
) - 将
maxViewMode
选项设置为0
(minViewMode
默认为0
) - 隐藏上一个/下个月按钮和月份名称按钮,您可以使用CSS执行此操作:
-
.datepicker-days
的days视图位于具有.datepicker-days
类的表中 - prev和next按钮位于
.datepicker-days
表中,它们具有.prev
和.next
类 - 月份名称在同一个表中,它具有
.datepicker-switch
类
-
- 日期datepicker应该显示正确的天数,因此您必须在选择年份和月份时以dinamically更新
defaultViewDate
(请参阅changeDate
事件)- 由于picker没有
defaultViewDate
setter方法,你可以destroy
它然后重新初始化它。
- 由于picker没有
这是一个完整的工作样本:
$(document).ready(function() { var dateOpt = { format: 'dd', maxViewMode: 0 }; $("#year").datepicker({ format: "yyyy", viewMode: "years", minViewMode: "years" }).on('changeDate', function(e) { var month = $('#month').datepicker('getDate'); if( !month ){ month = new Date(); } dateOpt.defaultViewDate = { year: e.date.getFullYear(), month: month.getMonth(), day: 1 }; // Reset date datepicker $('#date').datepicker('destroy'); // Re-init with defaultViewDate option $('#date').datepicker(dateOpt); }); $("#month").datepicker({ format: "mm", viewMode: "months", minViewMode: "months", maxViewMode: 0 }).on('changeDate', function(e) { var year = $('#year').datepicker('getDate'); if( !year ){ year = new Date(); } dateOpt.defaultViewDate = { year: year.getFullYear(), month: e.date.getMonth(), day: 1 }; $('#date').datepicker('destroy'); $('#date').datepicker(dateOpt); }); $("#date").datepicker(dateOpt) });
/* Hide prev/next buttons and month name*/ .datepicker-days>table>thead>tr>th.prev, .datepicker-days>table>thead>tr>th.datepicker-switch, .datepicker-days>table>thead>tr>th.next { display: none; } /* Hide days of previous month */ td.old.day{ visibility: hidden; } /* Hide days of next month */ td.new.day{ display: none; }