日期选择器设置为今天的日期并禁用周末
Datepicker set to today's date and disable weekends
<div class="form-group">
<div class="col-md-4 col-md-offset-4">
<label>Start Date</label>
<script>
//$(".selector").datepicker({ beforeShowDay: $.datepicker.noWeekends })
$(".datepicker").datepicker({ beforeShowDay: $.datepicker.noWeekends })
//$(".date").datepicker("setDate", new Date());
</script>
<input type="date" class="form-control" id="startDate" />
</div>
</div>
如何将日历的开始日期设置为今天的日期?我已经尝试了注释掉的代码,但它们不起作用。或者是否可以设置输入 min=datetime.today 之类的?另外,如何禁用周末?我已经尝试搜索如何执行此操作,但代码对我不起作用。
我第一次使用带有 <script>
标签的代码,是否有任何东西需要添加到我的代码中?因为似乎所有 jquery (?) 代码都适用于其他人而不适用于我,所以我觉得我遗漏了一些东西,所以它可能不起作用。
还有最后一个问题。如果我还想禁用 public 假期,如果 public 假期存储在 excel 文件中,我该怎么办?
编辑
$(document).ready(function(){
$('#startDate').datepicker({
minDate: new Date(),
beforeShowDay: $.datepicker.noWeekends
});
})
关于您的第一个问题,假设您使用的是 JQueryUI:
$('.datepicker').datepicker({
minDate: new Date()
});
应该为你做。
至于第二个,我将不得不对其进行一些研究,因为我也对此感到疑惑。 Excel 可能有点笨拙,但可以轻松导出到更适合网络的内容。它可能涉及将侦听器附加到您的 'change' 事件并获取当月的假期,然后做...某事。
您有一个内联脚本,您试图 select 元素存在于 DOM 之前。此外 selector 指的是一个不存在的元素。将您的脚本移动到页面底部(紧接在结束 </body>
标记之前),或将其包装在 $( document ).ready()
中。脚本应该是
$(document).ready(function(){
$('#startDate').datepicker({
minDate: new Date(),
beforeShowDay: $.datepicker.noWeekends
});
})
这会将最短日期设置为今天的日期,并禁用 selection of weekend dates。要设置特定日期,请使用 minDate: new Date(2015, 10, 4)
,这会将最短日期设置为 2105 年 11 月 4 日(请注意,月份是从零开始的,因此一月是 0
)。
要包含其他不 select 可用的日期,您可以创建一个函数以传递给 beforeShowDay
选项。首先,将日期数组作为视图模型 属性 或 ViewBag
属性 传递给视图,并将其分配给 javascript 变量,这可能会导致 say
var dates = ['11/16/2015', '11/25/2015'];
然后新建一个他们的时代数组
var holidays = [];
for (i = 0; i < dates.length; i++) {
var vals = dates[i].split('/');
var y = parseInt(vals[2]);
var m = parseInt(vals[0]) - 1;
var d = parseInt(vals[1]);
var holiday = new Date(y, m, d);
holidays.push(holiday.getTime());
}
并创建以下函数
function noHoliday(date) {
if(holidays.indexOf(date.getTime()) > -1) {
return [false];
} else {
return [true];
}
}
function noWeekendsOrHolidays(date) {
var noWeekend = $.datepicker.noWeekends(date);
if (noWeekend[0]) {
return noHoliday(date);
} else {
return noWeekend;
}
}
然后修改datepicker脚本为
$('#startDate').datepicker({
minDate: new Date(),
beforeShowDay: noWeekendsOrHolidays
});
参考 this fiddle 的工作示例
<div class="form-group">
<div class="col-md-4 col-md-offset-4">
<label>Start Date</label>
<script>
//$(".selector").datepicker({ beforeShowDay: $.datepicker.noWeekends })
$(".datepicker").datepicker({ beforeShowDay: $.datepicker.noWeekends })
//$(".date").datepicker("setDate", new Date());
</script>
<input type="date" class="form-control" id="startDate" />
</div>
</div>
如何将日历的开始日期设置为今天的日期?我已经尝试了注释掉的代码,但它们不起作用。或者是否可以设置输入 min=datetime.today 之类的?另外,如何禁用周末?我已经尝试搜索如何执行此操作,但代码对我不起作用。
我第一次使用带有 <script>
标签的代码,是否有任何东西需要添加到我的代码中?因为似乎所有 jquery (?) 代码都适用于其他人而不适用于我,所以我觉得我遗漏了一些东西,所以它可能不起作用。
还有最后一个问题。如果我还想禁用 public 假期,如果 public 假期存储在 excel 文件中,我该怎么办?
编辑
$(document).ready(function(){
$('#startDate').datepicker({
minDate: new Date(),
beforeShowDay: $.datepicker.noWeekends
});
})
关于您的第一个问题,假设您使用的是 JQueryUI:
$('.datepicker').datepicker({
minDate: new Date()
});
应该为你做。
至于第二个,我将不得不对其进行一些研究,因为我也对此感到疑惑。 Excel 可能有点笨拙,但可以轻松导出到更适合网络的内容。它可能涉及将侦听器附加到您的 'change' 事件并获取当月的假期,然后做...某事。
您有一个内联脚本,您试图 select 元素存在于 DOM 之前。此外 selector 指的是一个不存在的元素。将您的脚本移动到页面底部(紧接在结束 </body>
标记之前),或将其包装在 $( document ).ready()
中。脚本应该是
$(document).ready(function(){
$('#startDate').datepicker({
minDate: new Date(),
beforeShowDay: $.datepicker.noWeekends
});
})
这会将最短日期设置为今天的日期,并禁用 selection of weekend dates。要设置特定日期,请使用 minDate: new Date(2015, 10, 4)
,这会将最短日期设置为 2105 年 11 月 4 日(请注意,月份是从零开始的,因此一月是 0
)。
要包含其他不 select 可用的日期,您可以创建一个函数以传递给 beforeShowDay
选项。首先,将日期数组作为视图模型 属性 或 ViewBag
属性 传递给视图,并将其分配给 javascript 变量,这可能会导致 say
var dates = ['11/16/2015', '11/25/2015'];
然后新建一个他们的时代数组
var holidays = [];
for (i = 0; i < dates.length; i++) {
var vals = dates[i].split('/');
var y = parseInt(vals[2]);
var m = parseInt(vals[0]) - 1;
var d = parseInt(vals[1]);
var holiday = new Date(y, m, d);
holidays.push(holiday.getTime());
}
并创建以下函数
function noHoliday(date) {
if(holidays.indexOf(date.getTime()) > -1) {
return [false];
} else {
return [true];
}
}
function noWeekendsOrHolidays(date) {
var noWeekend = $.datepicker.noWeekends(date);
if (noWeekend[0]) {
return noHoliday(date);
} else {
return noWeekend;
}
}
然后修改datepicker脚本为
$('#startDate').datepicker({
minDate: new Date(),
beforeShowDay: noWeekendsOrHolidays
});
参考 this fiddle 的工作示例