HTML5日期输入6位数年份

The*_*kZn 23 html5 date

<input />我的表格上有一个标准控件,装饰着type="date"

渲染时,它会显示正确的水印yyyy-mm-dd,您可以正确选择日期.
但是,当您尝试键入值时,年份将扩展为6位数,而不是4位数.我添加了截图以帮助演示我遇到的问题.

还有其他人得到这个吗?我使用Chrome(版本35.0.1916.153 m)作为我的默认浏览器.
我想要一种方法来强制一个不涉及额外JS的4年输入.

日期控制

控制源

小智 17

据我所知,max属性正常工作......

max的格式是trickey,如果你输入正确的格式,一切都会正常工作....

看这里举个例子:

http://www.w3schools.com/html/tryit.asp?filename=tryhtml5_input_max_min_date

  • 它仍然允许输入 6 位数字年份而不是 4 位年份 (4认同)
  • 不幸的是,这只影响浏览器验证器。仍然可以输入 6 位(在 Firefox 上为 5 位)数字。 (3认同)
  • 被选为正确答案,因为它是非 JS 修复。 (2认同)
  • 请注意,当使用“type =“datetime-local””时,您需要一个类似于“yyyy-mm-ddT00:00”的最大格式才能正常工作。 (2认同)

小智 10

有点老了,但为了后代......

使用max属性消除了这个问题。

<input type="date" max="2999-12-31">
Run Code Online (Sandbox Code Playgroud)

笔:https : //codepen.io/iHearRobots/pen/OQVzLZ

  • 我不同意这“消除”了这个问题。例如,从 Chrome 70 开始,我可以输入 6 位数的年份。IMO,它应该阻止我输入超过最大年份的位数。它可能会被“验证”为不正确,但验证仍然不是标准的。 (6认同)

小智 6

它会让你输入更大的一年.它没有设计带盖,所以允许超过9999年.不知道为什么.(注意,即使使用该max属性,它似乎也不会限制它.[编辑] ..它可能不允许用户在输入更大的数字后实际提交.)

如果要完全限制它,则需要使用JavaScript解决方案.

见前一个帖子

  • 傻,因为面具显示了4位数的年份.所以每个人都在这发生这种情况? (4认同)

Jav*_*ved 5

使用max属性可解决此问题,例如:

<input type="date" max="1979-12-31">
Run Code Online (Sandbox Code Playgroud)