我正在使用HTML datetime-local
元素从用户获取日期时间。此输入字段的问题在于,它允许用户输入无法转换为JavaScript对象的值。一些可能投入太大,比如下面的日期是太大:是否有可能使HTML datetime-local元素只产生有效日期?
这是当我使用JavaScript它的价值会发生什么:
var input = document.getElementById("__Date");
var time = input.value; // is "121212-12-12T12:12" right now
var value = new Date(time); // I get an error here - "Invalid Date"
下面是完整的元素题。我正在使用Google Chrome v37来运行此代码。
<input type="datetime-local" class="input-block-level EditableAttributeValue" autocomplete="off" autocorrect="off" id="__Date" max="2015-00-00T00:00:00:00">
我需要一种方法,以禁止这些无效输入,优选不使用任何JavaScript来收听变化和手工验证输入。
没有JavaScript就无法真正做到。你受到浏览器的支配。去一个JavaScript解决方案,有很多日期/时间格式库,以及大量的日期/时间选择器。 – mason 2014-08-29 19:13:54
JavaScript代码与HTML代码(不同的'id'值)不匹配。马库肯定你包括*真实*代码,再现这个问题。 – 2014-08-29 19:15:31
在HTML中有最大的属性,为什么不解决这个问题? – 2014-08-29 19:18:57