为什么.prop(“type”)在日期时间输入中返回“text”?

时间:2017-07-25 18:45:18

标签: javascript jquery html

鉴于代码非常简单:

<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搜索,或者是什么。)

1 个答案:

答案 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),但它会隐藏真实输入的类型。