2017-10-09 88 views
3

我有一個input類型date使用jQuery datepicker。從文檔中可以看出,默認年份範圍是:c-10:c+10,它將顯示當前選定日期的過去10年和未來10年。jQuery日曆分頁限制

問題是我不希望這是一件事,我想能夠從默認位置有更多的選項。我已經嘗試將插件更改爲:yearRange:"c-20:c+20"但它沒有工作,它保持-10 + 10分頁。我已經嘗試了以下解決方案:

$(".selector").datepicker({ 
    yearRange: "2002:2012" 
}); 

哪個可以工作,但是年限不符合我的要求?我已經嘗試以下之一:

$(".selector").datepicker({ 
    minDate: new Date(1990, 1 - 1, 1) 
}); 

但也沒有工作,行爲仍然c-10:c+10

回答

0

您試圖從今天的日期設置不同於-10或+10的範圍,對不對?

由於該選項需要一個字符串,你可以建立一個創建自定義範圍:

var earliest_date = new Date().getFullYear() - 20; 
var latest_date = new Date().getFullYear() + 20; 

// date_range will be 1997:2037 
var date_range = earliest_date + ':' + latest_date; 

$(".selector").datepicker({ 
    yearRange: date_range 
}); 

希望這有助於!

更新:

我在的jsfiddle注意到,分頁行爲與預期,防止用戶去過去的2037年12月或1997年之前一月,但用戶仍然可以手動輸入任何日期到輸入。

要停止此操作,您需要設置minDatemaxDate而不是yearRange

var earliest_date = new Date(new Date().setFullYear(new Date().getFullYear() - 20)) 
var latest_date = new Date(new Date().setFullYear(new Date().getFullYear() + 20)) 

//var date_range = earliest_date + ':' + latest_date; 

$(".selector").datepicker({ 
    minDate: earliest_date, 
    maxDate: latest_date 
}); 

I've updated the jsFiddle.

+0

不是完美的解決方案,但該解決方案我還以爲可以做的伎倆,而我開始實施。我會接受你的回答 –

+0

謝謝,雖然看到我更新的答案,但它可能比我最初發布的更合適。 –

+0

該解決方案不適用於我的日曆...我的日曆的問題是您可以選擇一年,例如我想將我的生日設置爲12-09-1950。當我用你的解決方案打開日曆時,我會看到的年份範圍是-10,+ 10,我需要加載剩下的日曆,因爲它們不會從一開始就加載。 yearRange做到這一點,問題是例如添加yearRange中的今天日期的限制。 –