输入[type ='datetime-local']不支持Chrome中的秒数

时间:2016-12-29 05:36:07

标签: javascript html5 forms

当通过Javascript设置值并且值包含秒时,在Chrome上使用datetime-local输入类型似乎不起作用。为什么会这样?这似乎是一般的事情。简单来说,这是如何重新创建问题:

  1. 使用input创建type='datetime-local'元素。
  2. 使用JavaScript(使用.value)并使用非零秒(例如'1980-01-01T01:01:01.001')值将值设置为任意日期和时间。
  3. 尝试提交表单。它返回验证错误。
  4. ,如果将秒数设置为0(例如1980-01-01T01:01:00.001),或者通过HTML属性设置值,则不会抛出验证错误并且表单提交罚款。

    请参阅此CodePen示例:http://codepen.io/AskYous/pen/KNONVG

2 个答案:

答案 0 :(得分:0)

这似乎是Chrome中的一个错误。我找到了解决方案。使用.setAttribute()功能:

datetimeInput.setAttribute('value', '1980-01-01T01:01:01.001');

答案 1 :(得分:0)

这是HTML标准定义的预期行为。

step的默认type=datetime-local值为1分钟。默认的步骤是Unix epoch 1970-01-01T00:00:00。因此1980-01-01T01:01:01.001会导致步骤不匹配验证错误。

如果指定了min属性或value属性,那么它将是基于步骤的。