Google Chrome输入法类型="日期"

Ran*_*son 9 html google-chrome

我几乎不了解网络编程,但我的任务是在我公司的网站上解决问题.显然,我在使用type ="date"的旧网站上使用HTML5的浏览器存在问题,我需要找到解决方法.

我的网站有很多日期字段,用户必须输入这样的字段:

 <input type="date" name="DateStart" size="15" value="8/30/2011">
Run Code Online (Sandbox Code Playgroud)

在我们目前使用的除Chrome之外的每个浏览器中,这都可以.Chrome是唯一提供滚动按钮以滚动日期的浏览器.我在后端看到的是尝试这样做:

FormatDateTime(DateStart, 2)
Run Code Online (Sandbox Code Playgroud)

我收到无效的日期错误,这意味着我们无法使用Chrome填写此表单.有没有解决这个问题的方法?

Tom*_*tie 28

实际上,chrome对'date'的支持打破了.(见这里).至少目前.

在HTML中使用'date'绝对没问题 - 浏览器不知道或支持输入类型应该回退到type ='text'.

目前,chrome部分支持日期,其方式基本上是破坏的(它添加了几个上下按钮,但没有日期选择器.)

当然,你需要牢记的是,如果你正在使用类型="日期",如果浏览器支持的话,那么你需要禁用否则你可以使用任何支持日期选择器.

更新(2012年2月6日):

它看起来像我现在已经修复了.Chrome不再声称支持输入类型='日期',并且不提供部分完整的实施.

更新(2012年8月17日):

Chrome浏览器确实现在有输入型="日期"的支持,它的功能更强大这段时间.

  • @Tom Christie:+1让你的答案更新! (8认同)

fee*_*ela 8

先生,Chrome没有日期输入问题,您使用的是日期格式错误.Chrome不是今天唯一支持新HTML5输入的浏览器.例如,Opera显示带有日历的下拉列表type="date".

此外,HTML5-date-inputs上不存在size-attribute.

  • 这里的问题是,您的/该网站在包含在任何标准草案中之前很久就使用了输入类型的"日期".如果您只是将类型设为"文本",那将是最简单的解决方案. (4认同)
  • 我修改了原来的措辞,以减少攻击性. (2认同)

THB*_*BFT 5

输入类型 = 输入的值字段需要采用 yyyy-MM-dd 格式。 检查 W3 标准。

这意味着您必须执行类似 DateTime.Now.ToString("yyyy-MM-dd") 的操作。在您的代码中,我建议使用自定义 HtmlHelper。

浏览器中日期的格式完全取决于您的系统设置。