鉴于代码非常简单:
<html>
<body>
<input type="datetime" id="TheInput"/>
<script type="text/javascript" src="./jquery-3.2.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function (){
alert($("#TheInput").prop("type"));
});
</script>
</body>
</html>
你认为消息框会说“datetime”,不是吗?但显然它没有,它说“文字”。 jQuery如何以及为什么决定忽略我为该类型编写的内容?我不应该为“type”属性写任何类型的任何类型,并看到它回复给我?是否有一个jQuery认为某些类型应该是什么的列表?
(另外,不要试图把它放到jsFiddle或codepen。这些都因为某些原因拒绝运行我的javascript。我不知道我是否不允许使用“prop”或如果我不被允许按id搜索,或者是什么。)
答案 0 :(得分:4)
输入日期时间aren't supported anymore。
浏览器用类型为text的输入替换它们。这就是输入的type属性为"text"
的原因。
解决方案是使用datetime-local
类型的输入。
console.log("type a : " + document.getElementById("a").type);
console.log("type b : " + document.getElementById("b").type);
<input id=a type=datetime>
<input id=b type=datetime-local>
当然你也可以读取属性值(使用jQuery使用attr
),但它会隐藏真实输入的类型。