热门来获取不完整的datetime-local输入值

我的页面上有以下表格:

 

我使用此代码来获取字段的值:

 var start = $('#startDate').val(); 

我的问题是输入字段的值保持未定义,直到填写完每个部分,包括小时,分钟,秒和上午/下午。 我希望能够从表格中获得一个只有所选年份的价值。

我该怎么做呢? 我很乐意将未填写的值归零,但我无法弄清楚如何获得用户填写的datetime-local部分。

我知道我可以使用jQuery UI的datepicker的timepicker插件来做到这一点,但我真的不想走这条路 – 我更喜欢Chrome实现。

W3C Date State规范定义了清理算法:

  • 值清理算法如下:如果元素的值不是有效的日期字符串,则将其设置为空字符串。

每当设置input元素的值时调用哪个,如DOM输入值规范中所定义:

  • 获取时,它必须返回元素的当前值。 在设置时,它必须将元素的值设置为新值,将元素的脏值标志设置为true,如果元素的type属性的当前状态定义了一个,则调用值清理算法 ,然后,如果元素具有文本条目游标position,应将文本输入光标位置移动到文本字段的末尾,取消选择任何选定的文本并将选择方向重置为none。

因此,当日期无效时, value属性将始终为空字符串。 似乎没有指定“原始/脏/用户类型文本值”的任何属性,因为它毕竟不是文本输入。

IMO这是一件好事,它有助于表单validation,因为无效日期被视为虚假值(空字符串),它还使浏览器更自由地实现日期输入的UI。