HTML5输入类型时间,当00:00:00值不完全存在时(Chrome)

时间:2015-06-25 17:48:11

标签: javascript jquery html5 google-chrome

所以我有如下的html输入

<input id="time_in" type="time" step="1" name="duration">

当我在浏览器中将值设置为“00:00:00”时,一切似乎都很好。

但是你跳进控制台(或提交表格等),价值被截断为“00:00”

即。 jquery的

$("#time_in")[0].value == "00:00"

或普通的js

document.getElementById("time_in").value == "00:00"

我的问题是什么给出了什么?这应该是行为吗? 这对我来说似乎不正确,有人知道我是不是设置了属性还是做了非标准的事情?

编辑:

如果它有任何区别,这只是“00:00:00”,当你将它设置为“00:00:01”时,它已正确设置,你可以

document.getElementById("time_in").value == "00:00:01"

1 个答案:

答案 0 :(得分:3)

这是符合标准的行为,但00:00:00也是如此。

HTML5 specification

  

value属性(如果已指定且非空)必须具有有效时间字符串的值。

valid time string”的位置是:

  

字符串是有效时间字符串,表示小时hour,分钟minute和第二second,如果它包含以下组件给定的顺序:

     
      
  1. 两个ASCII数字,表示小时,范围为0≤hour≤23
  2.   
  3. “:”(U + 003A)字符
  4.   
  5. 两个ASCII数字,代表分钟,范围为0≤minute≤59
  6.   
  7. 可选(如果second非零,则需要):      
        
    1. “:”(U + 003A)字符
    2.   
    3. 两个ASCII数字,表示second的整数部分,范围为0≤s≤59
    4.   
    5. 可选(如果second不是整数,则需要):      
          
      1. 002E FULL STOP字符(。)
      2.   
      3. 一个,两个或三个ASCII数字,代表second
      4. 的小数部分   
    6.   
  8.         

    注意: second组件不能是60或61;闰秒无法表示。

因此,如果第二个为零,则分钟后的最后一位(包括冒号)是可选的,但不是禁止的。