2012-01-09 67 views
5

我想設置日期選擇器字段和頁面加載時的altField的值,並且我想知道日期選擇器中是否有選項自動執行該操作(即不必請致電setDate)。在加載時自動設置選擇的日期爲altField

我知道,如果我做這樣的事情:

$("#date-div").datepicker({altField:"#date-input",altFormat:"yy-mm-dd", defaultDate:+7}); 

隨着date-div是一個div,默認的日期將自動被加載頁面時加入date-input領域。 但是,如果我使用文本字段而不是div它不會自動設置值(我必須在單獨的行中調用)。

我只是好奇這一點,我已經實現了它調用setDate,但我想知道是否有什麼可以自動執行,如果不是爲什麼? (因爲它使用div來顯示日曆時工作)。

回答

-2

不是100%優雅,因爲它需要重複,但它爲我工作:

$("#date-div").datepicker({altField:"#date-input",altFormat:"yy-mm-dd", defaultDate:$("#date-input").val()}); 
+0

你的回答似乎並沒有工作。可能由於 – 2014-06-27 23:01:37

+1

-1格式的差異,這隻適用於'altFormat'與'dateFormat'([docs](http://api.jqueryui.com/datepicker/#utility-formatDate))相同的情況。 – Stijn 2014-09-03 09:13:31

+0

如果它在額外的條件下工作,那麼爲什麼你低估了它?我有點不明白因爲提供解決方案而受到懲罰 – Kodak 2015-11-18 12:35:58

0

你最好的選擇設置defaultDate是一個像Moment.js庫來解析altField的價值,因爲瀏覽器實現瞭解析日期不可靠。例如,如果你的altField是你的日期選擇器場前場和它在ISO 8601的格式,你可以這樣做:

$(this).datepicker({ 
    altField: $(this).prev(), 
    altFormat: $.datepicker.ISO_8601, 
    defaultDate: moment($(this).prev().val()).toDate() 
}); 

打開日曆時將只設置默認選定的日期。如果你也想填充日期選擇字段,可以初始化具有的日期選擇器與上面的代碼之後:

$(this).datepicker("setDate", moment($(this).prev().val()).toDate()); 
相關問題