2012-06-19 63 views
1

我有一個編輯表單,其中值從數據庫填充。我有一個date字段,格式爲yyyy-mm-dd。我已經設置了jQuery Datepicker及其在日期字段上的工作,但是,當表單第一次加載時,即使輸入類型具有數據庫中的值,日期字段也是空的,當我檢查HTML源代碼時。Jquery UI日期選擇器字段中的數據庫預填充日期

如何讓我的日期字段顯示數據庫中的日期?

編輯:

我希望我的輸入值是在文本字段中可見,而不是抓住從數據庫中的值,並再次將其插入一個jQuery/javascript變量/功能(默認的日期,showbefore什麼不可以)。

我該怎麼做才能禁止datepicker隱藏我的價值觀?並且只能點擊並選擇日期才能替換這些值。

HTML代碼:

<input type="text" id="date" name="reg_date" value="2012-01-30" /> 

實際的代碼是在其中該值被從數據庫中檢索並在值字段中插入PHP。這些值是正確生成和插入的,因爲我通過查看Firefox中的HTML源代碼來驗證它。

日期選擇器設置:

$(function() { 
    $("#date").datepicker({ 
     changeMonth: true, 
     changeYear: true 
}); 
    $("#date").datepicker({ dateFormat: "yy-mm-dd" }); 
    $("#date").datepicker("option", "dateFormat", "yy-mm-dd"); 
}); 
+0

顯示設置日期選擇器功能,當你在輸入 – csotelo

+0

打印,當您在代碼中創建的日期選擇器,使用「beforeShow」的方法,以您的初始日期值傳遞給日期選擇器。所以做這樣的事情:$('。selector')。datepicker({beforeShow:function(input,inst){...} });參考:http:// jqueryui。com/demos/datepicker /#event-beforeShow BTW:這將有助於查看一些代碼,以便我們知道如何定義事物。 – chrisvillanueva

回答

0

改變此:

$(function() { 
    $(".date").datepicker({ 
     dateFormat: "yy-mm-dd",     
     changeMonth: true, 
     changeYear: true 
    }); 
}); 

如果您的瀏覽器緩存?按CTRL + F5

+0

經過大量的搜索,我在這裏找到答案http://stackoverflow.com/questions/8200290/jquery-date-picker-doesnt-show-original-text-value/8200551#8200551,順便說一句,你的,雖然日期格式需要是'yy-mm-dd'而不是'dd-mm-yy'來滿足我的要求,但是改成這個,我得到了我想要的。 – WebNovice

+0

編輯的響應... – csotelo

0

日期選擇器是在寫作的價值。我建議你在專注於日期字段時觸發日期選擇器。

0

您需要在日期選擇器設置代碼中設置默認日期。

例如:$(".selector").datepicker({ defaultDate: +7 });設置默認日期爲從現在開始的7天。

真實的故事。

+0

我不想那樣做。該領域與今天的日期無關。日期從數據庫中檢索,它應該顯示在輸入字段中,而不用'datepicker'插件刪除它。 我確信你的答案可以調整到我需要的東西,但對於那些應該很簡單的東西來說這太多了。 – WebNovice

+0

發佈您當前的uiPicker設置。以及用於顯示日期的HTML和PHP代碼。 – edwardmp

+0

添加了設置/代碼。設置非常小。 – WebNovice

0

好了,現在你已經貼出你的代碼是非常明顯的。

你的數據庫日期格式是YYYY-MM-DD 你的jQuery UI格式是yy-mm-dd 看看有什麼不對?您至少缺少一年中的兩位數字。

要解決這個問題,只需在代碼中輸入正確的格式即可。

例子:

$("#date").datepicker({ dateFormat: "dd-MM-yyyy" }); 
$("#date").datepicker("option", "dateFormat", "dd-MM-yyyy"); 
+1

jQuery的'yy-mm-dd'對應于格式'YYYY-MM-DD'。 當你使用'yyyy'時,它會給你'20122012',即一年兩次。 – WebNovice

相關問題