Mic*_*eph 1 javascript jquery datepicker jquery-ui-datepicker
我正在尝试在 jquery.ui.datepicker 中编辑 beforeShowDay 函数。这是我试图替换的日期选择器中的原始beforeShowDay 行:
beforeShowDay: null, // Function that takes a date and returns an array with
// [0] = true if selectable, false if not, [1] = custom CSS class
name(s) or '',
// [2] = cell title (optional), e.g. $.datepicker.noWeekends
Run Code Online (Sandbox Code Playgroud)
我四处寻找试图找到正确的代码来替换它,但没有运气。我找到了这个小提琴; 在日期选择器中禁用 1 天
我已经编辑了这个小提琴并成功地使用以下代码禁用了星期五和星期六:
$("#datepicker").datepicker({
beforeShowDay: function(date) {
return [date.getDay() == 0 || date.getDay() == 1 || date.getDay() == 2 || date.getDay() == 3 || date.getDay() == 4 ] ;
}
});
Run Code Online (Sandbox Code Playgroud)
但是,当我将其复制并粘贴到 jquery.ui.datepicker 时,日历不起作用,并且出现控制台错误(Uncaught SyntaxError: Unexpected token)。
我正在做的是用以下内容替换原来的beforeShowDate:
beforeShowDay: function(date) {
return [date.getDay() == 0 || date.getDay() == 1 || date.getDay() == 2 || date.getDay() == 3 || date.getDay() == 4 ] ;
}
任何人都可以建议我做错了什么以及如何使其正常运行?
你不应该直接编辑 jQuery UI 插件
如果您真的想要,那么您必须粘贴此代码替换 null。但不推荐。
function(date) {
var show = true;
if(date.getDay()==6||date.getDay()==0) show=false;
return [show];
},//don't forget comma after the function
Run Code Online (Sandbox Code Playgroud)
正确的做法是在您自己的 js 文件中配置 jquery ui 日期选择器时传递该函数。
$("#datepicker").datepicker({
beforeShowDay: function(date) {
var show = true;
if(date.getDay()==6||date.getDay()==0) show=false
return [show];
}
});
Run Code Online (Sandbox Code Playgroud)
应该禁用的星期几。值为 0(星期日)到 6(星期六)。多个值应以逗号分隔。示例:禁用周末:'06' 或 '0,6' 或 [0,6]。
daysOfWeekDisabled为此使用
$('#datepicker').datepicker({
daysOfWeekDisabled: [5,6]
});
Run Code Online (Sandbox Code Playgroud)
编辑
我在阅读和发布上面关于 bootstarp datepicker 的答案时犯了错误。
对于 Jquery UI Datepicker 试试这个
beforeShowDay: function(d) {
return [!(d.getDay()==0||d.getDay()==6)]
}
Run Code Online (Sandbox Code Playgroud)