2013-01-02 26 views
0

如何禁用默認DHTML日曆中的前幾天?如何禁用默認DHTML日曆中的前幾天?

我用下面的代碼,

<script type="text/javascript"> 
Calendar.setup({ 
     inputField : '_dob', 
     ifFormat : '%m/%e/%y', 
     button : '_dob_trig', 
     align : 'Bl', 
     singleClick : true, 
     disableFunc: function(date) { 
      var now= new Date(); 
     return (date.getTime() < now.getTime()); 
    } 
    }); 
</script> 

它工作在禁用之前的日期。但是,當我們選擇有效日期時,什麼都不會發生。日期未被添加到日曆的文本字段中。

如果我改變月份並回來,我可以選擇日期!

任何想法?

+0

你能到日曆庫提供鏈接????? –

+0

可以指出如何在DHTML日曆中獲得完整日期? –

回答

3

哇代碼!

這可能是一些JavaScript錯誤。我無法選擇任何日期,除非從下個月回來...

我通過給它一些如果循環過去。我的更新代碼如下。

<script type="text/javascript"> 
Calendar.setup({ 
     inputField : '_dob', 
     ifFormat : '%m/%e/%y', 
     button : '_dob_trig', 
     align : 'Bl', 
     singleClick : true, 
     disableFunc: function(date) { 
      var now= new Date(); 
     if(date.getFullYear()<now.getFullYear()) 
     { 
      return true; 
     } 
     if(date.getFullYear()==now.getFullYear()) 
     { 
      if(date.getMonth()<now.getMonth()) 
      { 
       return true; 
      } 
     } 
     if(date.getMonth()==now.getMonth()) 
     { 
      if(date.getDate()<now.getDate()) 
      { 
       return true; 
      } 
     } 
    }, 
    }); 
</script> 

問候大家說......

0

禁用功能應始終返回TRUE或FALSE。

disableFunc函數:接收JS Date對象的函數。如果該日期必須禁用,它應該返回true,否則返回false。 DEPRECATED(見下文)。

請參考下,

DHTML CALENDAR SETTINGS REFERENCE

但在你的代碼禁止函數返回什麼... :(所以它進入JS錯誤,並沒有什麼作品事件點擊..

根據檢查後,您的要求檢查你的病情,

return (date.getDate() <= now.getDate()); 

返回TRUE或FALSE上述條件...

+0

但是不會'(date.getDate()<= now.getDate())給出一個「true」或「false」的值嗎? –

+0

它的樂趣!代碼似乎是正確的!但我只能選擇日期,如果我去上個月,回來...!我編輯了這個問題.... –

0

試試下面

Calendar.setup({ 
      inputField : '_dob', 
      ifFormat : '%m/%e/%y', 
      button : '_dob_trig', 
      align : 'Bl', 
      singleClick : true, 
      dateStatusFunc : function (date) { 
       var now= new Date(); 
       return (date.getDate() <= now.getDate()); 
      } 
     }); 
+0

不工作。在當前js-「(date.getTime()

+0

看看這個http://jsfiddle.net/gFM6G/ –

+0

謝謝你的嘗試。但是我的問題有點不同。首先,我需要禁用每一個消失的日期。在您的代碼中,僅當前月份和年份中的日期已禁用。其次,如果「今日」已啓用,我只能選擇日期。這可能是任何JavaScript錯誤。無論如何,我通過嘗試一些嵌套的if循環來通過它。 +1爲你的時間,嘗試和正確的代碼... :) –

0

我有同樣的問題,和調試之後,這個問題似乎是日曆想不通當前日曆日期應該是什麼(因爲它被disableFunc回調函數禁用)。你有兩個選項可用。

  1. 確保disableFunc函數在當前日期返回false。這樣它不會在日曆中被禁用,並且它會正常運行。
  2. 您可以在if(!cell.disabled)行之後的calendar.js中添加以下行。 (這恰好是我的文件版本中的第1183行 - v 1.51)

    else { this。currentDateEl = cell; }

第二個選項將允許您禁用當前日期。

對於那些想知道這個DHTML日曆是什麼,這裏是一個鏈接的文檔:http://www.dni.ru/js/doc/html/reference.html

相關問題