2017-09-25 24 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工作(尝试在不同的浏览器等)我做了最小的本地测试,它的工作。 –

相关问题