2017-09-25 42 views
2

我想在DateTextBox中設置一個真正的舊值。不幸的是,小部件不會接受在低於'100'的年份中設置的日期。Dijit DateTextBox設置日期在一年以下100n

當我嘗試將元素的值設置爲0017-01-01時,控件會自動將其自身設置爲2017-01-01

顯示的值屬性保持不變,直到窗口小部件失焦,然後更改爲內部日期。

<input type="date" 
    data-dojo-type="dijit/form/DateTextBox" 
    value='0017-01-01' 
    id="myDate" /> 

有沒有什麼辦法讓舊的日期在DateTextBox0100-01-01

我也建一個小的jsfiddle演示效果: http://fiddle.jshell.net/shfe1oqs/

回答

2

您可以添加constraint strict == trueDateTextBox

<input type="date" data-dojo-type="dijit/form/DateTextBox" 
data-dojo-props="constraints: {strict: true}" value='0017-01-01' id="myDate" /> 

修改後的jsfiddle:http://fiddle.jshell.net/fuzxt1fb/3/

注意,那麼你將必須輸入日期和月份的兩位數值

+0

謝謝fo答案。不幸的是,小部件的內部日期仍然設置爲Sun Jan 01 2017 00:00:00 GMT + 0100(CET)。根據[api文檔](https://dojotoolkit.org/api/?qs=1.10/dojo/date/locale#1_10dojo_date_locale_parse),dojo中使用的日期解析器僅允許日期早於年份100 :( –

+0

Are you sure?難道你沒有修改jsfiddle:「widget的內部價值:Thu Jan 12 0017 00:00:00 GMT + 0100」,這就是我所得到的嗎?你提到的API文檔說:「我可以在調試器中確認dojo.locale解析函數確實返回一個Date值爲0017-01-16T23:00:00.000Z的日期對象(我的本地區域是Paris),它被存儲在'價值'小部件屬性 –

+0

我很抱歉,解決方案沒有在我的jsfiddle工作(嘗試在不同的瀏覽器等)我做了最小的本地測試,它的工作。 –

相關問題