【问题标题】:input type date min and max values validate against yyyy-mm-dd instead of dd-mm-yyyy输入类型日期最小值和最大值根据 yyyy-mm-dd 而不是 dd-mm-yyyy 验证
【发布时间】:2013-07-03 08:19:51
【问题描述】:

我在 HTML5 中使用日期输入类型。 它以 dd-MM-yyyy 格式正确显示。 但是,最小值和最大值无法正确验证,因为它根据格式 yyyy-MM-dd 进行验证。 我无法更改最小值和最大值验证的格式,有什么想法吗?

<input type="date" name="DateName" id="DateID" min="2000-01-01" max="2100-12-31"/>

【问题讨论】:

  • 为什么不能更改最小值和最大值?
  • 在 Chromium 中对我来说很好。
  • 日期显示为:dd-MM-yyyy。但是,当我尝试将日期编辑为例如 22.01.2013 然后按提交时,它会将光标移动到 DateID 字段。没有错误消息,它只是将光标移动到 DateID 字段并没有继续移动。 min 和 max 写成 dd-MM-yyyy 不起作用
  • @CasperThuleHansen:这很可能是一个浏览器错误。您使用的是什么浏览器和操作系统?
  • 我用 chrome 浏览器测试过:版本 27.0.1453.116 m 和 Internet Explorer:9.0.8112.16421

标签: html validation


【解决方案1】:

属性valueminmax 具有相同的日期格式。他们遵循RFC 3339,其中完整的数据语法如下:

full-date       = date-fullyear "-" date-month "-" date-mday
date-fullyear   = 4DIGIT
date-month      = 2DIGIT  (01-12)
date-mday       = 2DIGIT  (01-28, 01-29, 01-30, 01-31)

因此,即使浏览器在内部以dd-mm-yyyy 格式向您显示日期,它也会使用这种语法。

无论如何,这种 HTML5 输入类型只有 Safari、Chrome 和 Opera 支持。

您可以试试这个Fiddle 无效日期为 2014 年 12 月 12 日,当您提交表单时会显示错误消息。

【讨论】:

  • 如何在验证 yyyy-mm-dd 之前更改显示的格式?
  • @CasperThuleHansen:很可能你不能。 stackoverflow.com/questions/17443034/…
  • @CasperThuleHansen 浏览器正在使用 yyyy-mm-dd 进行验证,您无法更改显示的格式...
  • @JonathanNaguin 如何找到 demo_form.asp?
  • @CasperThuleHansen 你不需要它,如果表单提交了,那么数据是有效的......
猜你喜欢
  • 1970-01-01
  • 2013-07-06
  • 1970-01-01
  • 2018-01-07
  • 2016-01-02
  • 1970-01-01
  • 1970-01-01
  • 2017-04-07
相关资源
最近更新 更多