2009-11-11 36 views
0

我有一個從數據庫中提取日期的表單文本字段(格式爲yyyy-mm-dd)。在jQuery UI datepicker中找不到defaultDate

<input class="" type="text" name="closingDate" id="closingDate" value="<?php echo $closingdate;?>" />@ Midday 

我然後有一個jQuery日期選擇器,將其抓住「defaultDate」值如上所示的輸入的值屬性。

$(document).ready(function(){ 
$("#datepicker").datepicker({defaultDate: 'input#closingDate.attr('value')' , altField: 'input#closingDate' , altFormat: 'yy-mm-dd'}); 
}); 

(PLZ注意:YY-MM-DD是正確的,因爲YYYY-MM-DD格式化,也$ closingdate正確呼應的出局爲yyyy-MM-DD,因爲我已經在頁面的其他地方檢查了它)。

但是,日期選擇器不會從輸入字段獲取日期,它只是默認爲其「今天」值。

回答

3

對不起,這麼晚了,但出於完整性是爲我工作。

基本上,您需要使用與datepicker相同的dateFormat或傳遞Date對象。

$(document).ready(function(){ 
    $("#datepicker").datepicker({ 
     defaultDate: new Date($('input#closingDate').attr('value')), 
     altField: 'input#closingDate', 
     altFormat: 'yy-mm-dd' 
    }); 
}); 

與此問題是輸入值更改爲'',所以它不適合編輯窗體。

我個人使用setDate方法和Date對象,這樣我可以在php中使用'2001-01-01',但在輸入中顯示一個「更好的」看日期。

$(document).ready(function(){ 
    $("#datepicker").datepicker({ 
     altField: 'input#closingDate', 
     altFormat: 'yy-mm-dd', 
     dateFormat:'DD, d MM, yy' 
    }); 
    $("#datepicker").datepicker("setDate", new Date($("input#closingDate").attr("value")); 
}); 
0

你不應該把你的默認日期文字字符串裏面,.attr()函數返回一個字符串:

$(document).ready(function(){ 
    $("#datepicker").datepicker({ 
     defaultDate: $('input#closingDate').attr('value'), 
     altField: $('input#closingDate'), 
     altFormat: 'yy-mm-dd' 
    }); 
}); 
+0

Hi Soviut,thx您的回覆。 我已經試過你的代碼,它確實註冊了一個日期......但是它列出了錯誤的日期 - 我知道數據庫值有日期'2010-01-01',代碼在輸出'2015-05-12'中文本字段,雖然它在datepicker上正確顯示了這個錯誤:S 幾乎在那裏我認爲,有什麼想法? – ab24 2009-11-11 20:58:02

+0

它可能只是一個日期格式問題。查看Javascript日期對象,瞭解如何輕鬆地將日期格式化爲任何您需要的內容。 – Soviut 2009-11-11 22:28:00

+0

嗨Soviut,我試圖編輯日期格式,但無濟於事。還有什麼想法? – ab24 2009-11-12 09:37:45

0

我知道這是有點晚了,但我不得不嘗試設置時完全相同的問題JQuery UI DatePicker中的默認日期。

它一直採取我的asp.net日期時間和添加任意年份或它。

我的解決辦法:在這裏

var myDate= new Date('<%=myObject.myDate.ToLongDateString() %>'); 
$("#mytextbox").datepicker({ defaultDate: myDate });