【问题标题】:Dijit DateTextBox set date in a year lower thatn 100Dijit DateTextBox 将日期设置为低于 100 的年份
【发布时间】:2017-09-25 13:54:39
【问题描述】:

我正在尝试在 DateTextBox 中设置一个非常旧的值。不幸的是,该小部件不接受设置为低于“100”的年份的日期。

当我尝试将元素的值设置为0017-01-01 时,小部件会自动将自身设置为2017-01-01

显示的值属性保持不变,直到小部件失去焦点,然后更改为内部日期。

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

有没有办法在DateTextBox 中允许较早的日期0100-01-01

我还搭建了一个小jsfiddle来演示效果: http://fiddle.jshell.net/shfe1oqs/

【问题讨论】:

    标签: date dojo dijit.form


    【解决方案1】:

    您可以将constraint strict == true 添加到您的DateTextBox

    <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/

    请注意,您必须输入两位数的日期和月份

    【讨论】:

    • 感谢您的回答。不幸的是,小部件的内部日期仍设置为 Sun Jan 01 2017 00:00:00 GMT+0100 (CET)。根据api documentation,dojo 中使用的日期解析器不允许超过 100 年的日期:(
    • 你确定吗?难道你没有得到修改后的jsfiddle:“小部件的内部值:Thu Jan 12 0017 00:00:00 GMT+0100”,这就是我得到的?您提到的 API 文档说:“年
    • 很抱歉,该解决方案在 jsfiddle 中对我不起作用(在不同的浏览器等中尝试过)我进行了最小的本地测试并且它有效。非常感谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多