我希望在jQuery UI DatePicker
中禁用一周中的特定日期,具体取决于@razor视图中提交的模型中的值是true还是false。
我每个工作日都有一个bool。如果构造了一个值,那么datepickern中的日期可用,但如果为false,则该日期将被禁用。
我在这里的不同侧面环顾四周,但这些选项都不适合我。 这是我的代码:
$('#txtStartDate').datepicker({
defaultDate: '+1w',
numberOfMonths: 1,
showAnim: 'slide',
changeMonth: true,
changeYear: true,
showWeek: true,
dateFormat: "yy-mm-dd",
minDate: new Date(hidStartDate),
beforeShowDay: function(date) {
var day = date.getDay();
if (day == 1 && $('#hidMonday').val() == "True") {
return day;
}
if (day == 2 && $('#hidTuesday').val() == "True") {
return day;
}
if (day == 3 && $('#hidWednesday').val() == "True") {
return day;
}
if (day == 4 && $('#hidThursday').val() == "True") {
return day;
}
if (day == 5 && $('#hidFriday').val() == "True") {
return day;
}
},
});
$('#txtStartDate').css('clip', 'auto');
一旦在日历中经历了大约5-6天,我在控制台中出现以下错误
" Jquery - ui.js:9742未捕获TypeError:无法读取属性' 0' 未定义"
那就是说,我已经四处查看了这里提出的解决方案,但它可能无效。此解决方案基于以下提议:
Disable specific days of the week on jQuery UI datepicker
提前致谢。
答案 0 :(得分:1)
我在此fiddle
中检查了您的代码if (day == 1 && $('#hidMonday').val() == "True") {
return day;
}
if (day == 2 && $('#hidTuesday').val() == "True") {
return day;
}
如果没有返回任何日期对象,则会出现错误 进入任何if条件)。你不能简单地不回来 如果不满足任何条件,那么更好的回报是假的
答案 1 :(得分:1)
Acutally beforeShowday
应该返回一个数组。这就是它的文件所说的
beforeShowDay
Type: Function( Date date )
Default: null
A function that takes a date as a parameter and must return an array with:
[0]: true/false indicating whether or not this date is selectable
[1]: a CSS class name to add to the date's cell or "" for the default presentation
[2]: an optional popup tooltip for this date
*默认情况下,您可以发送null,否则返回array[flag,"",""] where flag is false for disabling