我需要突出显示开始日期和结束日期之间的日期,我应该能够指定。谁能帮我?
答案 0 :(得分:32)
您可以使用beforeShowDay event。每个需要在日历中显示的日期都会调用它。它传递一个日期并返回一个数组,其中[0] = isSelectable,1 = cssClass,[2] =一些工具提示文本
$('#whatever').datepicker({
beforeShowDay: function(date) {
if (date == myDate) {
return [true, 'css-class-to-highlight', 'tooltipText'];
}
}
});
答案 1 :(得分:22)
这是一个有效的例子!你将需要从http://jqueryui.com/download创建一个包含核心,小部件和日期选择器的包。
之前放置的javascript部分:
<script>
$(document).ready(function() {
var dates = ['22/01/2012', '23/01/2012']; //
//tips are optional but good to have
var tips = ['some description','some other description'];
$('#datepicker').datepicker({
dateFormat: 'dd/mm/yy',
beforeShowDay: highlightDays,
showOtherMonths: true,
numberOfMonths: 3,
});
function highlightDays(date) {
for (var i = 0; i < dates.length; i++) {
if (new Date(dates[i]).toString() == date.toString()) {
return [true, 'highlight', tips[i]];
}
}
return [true, ''];
}
});
</script>
HTML部分:
<div id="datepicker"></div>
添加这个CSS的地方:
td.highlight {border: none !important;padding: 1px 0 1px 1px !important;background: none !important;overflow:hidden;}
td.highlight a {background: #99dd73 url(bg.png) 50% 50% repeat-x !important; border: 1px #88a276 solid !important;}
你需要制作一个名为bg.png的小图片才能使其正常工作
答案 2 :(得分:13)
以为我会投入两分钱,因为它似乎比其他人更快,更轻盈:
jQuery(function($) {
var dates = {
'2012/6/4': 'some description',
'2012/6/6': 'some other description'
};
$('#datepicker').datepicker({
beforeShowDay: function(date) {
var search = date.getFullYear() + '/' + (date.getMonth() + 1) + '/' + date.getDate();
if (search in dates) {
return [true, 'highlight', (dates[search] || '')];
}
return [false, '', ''];
}
});
});
答案 3 :(得分:3)
不确定这是否仍然有用,但由于这对我有用,我想分享我的所作所为:
在我的JavaScript中:
var holidays= ["2016/09/18", "2016/09/19", "2016/01/01", "2016/05/01", "2016/06/27", "2016/08/15"];
$("#SomeID").datepicker({ beforeShowDay: highLight });
function highLight(date) {
for (var i = 0; i < holidays.length; i++) {
if (new Date(holidays[i]).toString() == date.toString()) {
return [true, 'ui-state-holiday'];
}
}
return [true];
}
在jquery-ui-theme.css中我添加了
.ui-state-holiday .ui-state-default {
color: red;
}
如果你想突出周末,你必须使用这个CSS
.ui-state-holiday .ui-state-default, .ui-datepicker-week-end .ui-state-default {
color: red;
}
这就是结果:
(请注意,我已将我的语言配置为西班牙语,但这对此代码并不重要)
答案 4 :(得分:0)
如果您使用的是Keith Wood的datepick,您可以使用以下here
中的示例$(selector).datepick({onDate: highlightDays});
function highlightDays(date) {
return {selectable: true, dateClass: 'highlight-custom', title: 'tooltip'};
}
答案 5 :(得分:0)
date
var(我从here获得)。这里
function highlightDays(date) {
for (var i = 0; i < dates.length; i++) {
var d = date.getDate();
var m = date.getMonth();
m += 1; // JavaScript months are 0-11
var y = date.getFullYear();
var dateToCheck = (d + "/" + m + "/" + y);
if (dates[i] == dateToCheck) {
return [true, 'highlight', tips[i]];
}
}
return [true, ''];
}
当然,正如上面的函数所示,它不考虑前导零填充,因此需要将dates
数组更改为:
var dates = ['22/1/2014', '23/1/2014'];
答案 6 :(得分:0)
晚会,但这是我曾经测试的JSFiddle:
https://jsfiddle.net/gq6kdoc9/
HTML:
<div id="datepicker"></div>
JavaScript的:
var dates = ['11/13/2017', '11/14/2017'];
//tips are optional but good to have
var tips = ['some description', 'some other description'];
$('#datepicker').datepicker({
dateFormat: 'dd/mm/yy',
beforeShowDay: highlightDays,
showOtherMonths: true,
numberOfMonths: 3,
});
function highlightDays(date) {
for (var i = 0; i < dates.length; i++) {
if (new Date(dates[i]).toString() == date.toString()) {
return [true, 'highlight', tips[i]];
}
}
return [true, ''];
}
和CSS:
td.highlight {
border: none !important;
padding: 1px 0 1px 1px !important;
background: none !important;
overflow: hidden;
}
td.highlight a {
background: #ad3f29 url(bg.png) 50% 50% repeat-x !important;
border: 1px #88a276 solid !important;
}
建立在Mike上面的工作示例中!