2013-02-27 29 views
1

只能選擇任意月份中的日期1 & 16。所有其他日期應該禁用。 請幫助在jquery datapicker中只能生成當前月份的半月日期​​

$(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,""] 
        } 
      }); 
+0

你有什麼試過? (另外,哪個jQuery datepicker - 有很多實現!) – Jamiec 2013-02-27 10:51:37

+0

我剛剛在這裏粘貼了我的代碼。請看一下。 @Jamiec – gca 2013-02-27 10:57:45

回答

3

假設jQuery的UI datpicker,因爲這是你標記你的問題有,你應該初始化您的日期選擇器時提供的選項是beforeShowDay。文檔rovides的什麼必須從該方法返回一個相當良好的描述中,下面再現爲清楚起見:

甲函數採用一個日期作爲參數,並必須返回[0]等於真/假指示的陣列無論此日期是否可選,[1]等同於默認演示文稿的CSS類名稱或「」,以及[2]此日期的可選彈出式工具提示。在日期選擇器顯示之前每天都會調用它。

那麼對你來說,是這樣的:

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

(剛剛看到的代碼你更新你唯一的問題是你的測試是「一天等於1,一天等於16」。顯然兩者。所以你錯了是你應該使用或!)

+0

謝謝@Jamiec – gca 2013-02-27 11:12:46

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,""];** 
          } 
}); 
+0

這是我寫的最後一個代碼 – gca 2013-02-27 12:14:22

+0

哦,上帝爲什麼?你的方式有什麼問題 - 它要清晰得多。 – Jamiec 2013-02-27 14:53:36

+0

@Jamiec:該代碼沒有任何問題。就這樣試了一下。前者比你說的更清楚。謝謝你的回覆 – gca 2013-02-27 15:52:16

相關問題