当通过Javascript设置值并且值包含秒时,在Chrome上使用datetime-local输入类型似乎不起作用。为什么会这样?这似乎是一般的事情。简单来说,这是如何重新创建问题:
input
创建type='datetime-local'
元素。.value
)并使用非零秒(例如'1980-01-01T01:01:01.001'
)值将值设置为任意日期和时间。 但,如果将秒数设置为0(例如1980-01-01T01:01:00.001
),或者通过HTML属性设置值,则不会抛出验证错误并且表单提交罚款。
请参阅此CodePen示例:http://codepen.io/AskYous/pen/KNONVG
答案 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
属性,那么它将是基于步骤的。