在Datepicker中禁用星期五和星期六

时间:2017-05-29 07:11:32

标签: javascript jquery datepicker jquery-ui-datepicker

我正在尝试编辑jquery.ui.datepicker中的beforeShowDay函数。 这是我想要替换的datepicker中的原始之前的ShowDay行:

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

我一直在寻找正确的代码来替换它而没有运气。 我找到了这个小提琴; disable 1 day in datepicker

我编辑了这个小提琴并成功地使用以下代码禁用星期五和星期六:

    $("#datepicker").datepicker({
    beforeShowDay: function(date) {
        return [date.getDay() == 0 || date.getDay() == 1 || date.getDay() == 2 || date.getDay() == 3 || date.getDay() == 4 ] ;
    }
});

但是,当我将其复制并粘贴到jquery.ui.datepicker中时,日历不起作用,我收到控制台错误(Uncaught SyntaxError:Unexpected token)。

我正在做的是用以下内容替换onShowDate之前的原始

beforeShowDay: function(date) { return [date.getDay() == 0 || date.getDay() == 1 || date.getDay() == 2 || date.getDay() == 3 || date.getDay() == 4 ] ; }

任何人都可以告诉我我做错了什么以及如何让它正常运作?

3 个答案:

答案 0 :(得分:2)

  

<强> https://github.com/realm/realm-java/blob/master/README.md#gotchas

     

应禁用的星期几。值为0(星期日)至6(星期六)。多个值应以逗号分隔。示例:禁用周末:'06'或'0,6'或[0,6]。

将<{1}}用于此

daysOfWeekDisabled

daysOfWeekDisabled

修改

我错误地阅读并发布了关于bootstarp datepicker的上述答案。

对于Jquery UI Datepicker,试试这个

$('#datepicker').datepicker({
    daysOfWeekDisabled: [5,6]
});

Working fiddle

答案 1 :(得分:1)

您不应直接编辑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

正确的方法是在你自己的js文件中配置jquery ui date-picker时传递函数。

$("#datepicker").datepicker({
    beforeShowDay: function(date) {
       var show = true;
       if(date.getDay()==6||date.getDay()==0) show=false
       return [show];
    }
});

答案 2 :(得分:0)

你可以试试这个,

$("#datepicker").datepicker({
   beforeShowDay: function(date) {
    var day = date.getDay();
    return [(day != 5 && day != 6), ''];
  }
});

http://jsfiddle.net/nWAnz/238/