1

只有任何月份的日期 1 和 16 可供选择。应禁用所有其他日期。请帮忙

$(closure.el).find('#listcmd_invoices .add .invoice-from-date-input')
             .datepicker({
                changeYear: true,
                showAnim: 'slide',
                changeMonth : true,
                yearRange : "Y:+2Y",
                beforeShowDay: function(date){
                        return [date.getDate() == 16 && date.getDate() == 1,""]
                    }
             });
4

2 回答 2

3

假设 JQuery-UI datpicker,因为这就是您标记问题的内容,那么您在初始化 datepicker 时应该提供的选项是beforeShowDay。该文档对必须从该方法返回的内容提供了相当好的描述,为清楚起见,转载如下:

函数将日期作为参数,并且必须返回一个数组,其中 [0] 等于 true/false 指示此日期是否可选,[1] 等于 CSS 类名称或默认表示为 "",并且 [ 2] 此日期的可选弹出工具提示。在显示之前,它会在日期选择器中的每一天被调用。

所以对你来说,像:

$( "#datepicker" ).datepicker({
  beforeShowDay: function(date){
    return [
      date.getDate() == 16 || date.getDate() == 1,
      ""
    ];
  }
});

(刚刚看到你的代码更新。你遇到的唯一问题是你的测试是“天等于 1 天等于 16”.. 显然两者都不是真的。所以你错的只是你应该使用 OR!)

于 2013-02-27T10:59:39.317 回答
1
$(closure.el).find('#listcmd_invoices .add .invoice-from-date-input')
         .datepicker({
            changeYear: true,
            showAnim: 'slide',
            changeMonth : true,
            yearRange : "Y:+2Y",
            beforeShowDay: function(date){
                               **if (date.getDate() == 1 || date.getDate() == 16)
                                   return [true,""];
                               else
                                   return [false,""];**
                            }
});
于 2013-02-27T12:13:54.707 回答