2013-03-19 156 views
2

我有一個jQuery datepicker。我想將默認日期設置爲「當前月份,當天(當前年份 - 18)」,但我設置defaultDate屬性時遇到問題。顯示的默認年份是1920年,據推測是1995年。任何人都可以幫忙嗎?jQuery Datepicker將默認日期設置爲「當前月份,當前日期,(當前年份-18)」

我的代碼:

HTML

<input type="text" class="datepicker minimumSize" name="BirthDate" id="BirthDate" readonly="readonly"/> 

的JavaScript

var d = new Date(); 
var year = d.getFullYear() - 18; 
$('#BirthDate').datepicker({ changeYear: true, changeMonth: true, yearRange: '1920:' + year + '', defaultDate: d.getMonth()+d.getDay()+year}); 

的jsfiddle http://jsfiddle.net/jobzky/zg8Le/

+2

是否有人制作一個18+的網站? – mpen 2013-03-19 04:25:57

回答

4

嘗試

var d = new Date(); 
var year = d.getFullYear() - 18; 
d.setFullYear(year); 
$('#BirthDate').datepicker({ changeYear: true, changeMonth: true, yearRange: '1920:' + year + '', defaultDate: d}); 

演示:Fiddle

+0

我試過你的演示。下拉列表中的默認年份是正確的,但我想知道日曆中的當天沒有被選中。但如果我刪除了d.setFullYear(year);當前日期現在選擇,但默認年份回到1920 – 2013-03-19 04:38:13

+0

這是因爲條件,你說的年份範圍是在1920年和1995年之間,但默認日期是2013年,你沒有看到那裏的不匹配 – 2013-03-19 04:45:52

+0

我認爲刪除d .setFullYear(一年);仍然將1995年作爲自從我們減去18年之前的這種方法之前的最高日期。測試目的是否刪除d.setFullYear(year);是要檢查當天是否被選中,如果包含當前日期不會被選中 – 2013-03-19 04:52:14

0

試試這個。這將解決你的問題

var d = new Date(); 
var year = d.getFullYear() - 18 ; 

$('#BirthDate').datepicker({ 
    changeYear: true, 
    changeMonth: true, 
    yearRange: '1920:' + year, 
    defaultDate: new Date(year, d.getMonth(), d.getDate()) 
    }); 
+0

抱歉,您的意思是?是不是yearRange用於當你想具體說明哪一年和哪一年將會在下拉菜單中顯示? – 2013-03-19 04:23:19

+0

@Jobert Enamno試試這個 – PSR 2013-03-19 04:39:19

1

在你撥弄你有defaultYear這是不正確的選項。在這裏,你有defaultDate,並且按照你將日月和月加在一起的方式(也不太可能是你的意思),似乎你想讓它成爲日期。

我懷疑你想要這個:

$('#BirthDate').datepicker({ 
    changeYear: true, 
    changeMonth: true, 
    yearRange: '1920:' + year, 
    defaultDate: new Date(year,d.getMonth(),d.getDay()) 
}); 
+0

默認日期是正確的,但所選日期不正確。它不是指向當天 – 2013-03-19 04:47:31

相關問題