Javascript 为什么.prop(“type”返回“type”;“文本”;在日期时间输入上?
给出了非常简单的代码:Javascript 为什么.prop(“type”返回“type”;“文本”;在日期时间输入上?,javascript,jquery,html,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 (
<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>
$(文档).ready(函数(){
警报($(“#输入”).prop(“类型”);
});
你会认为留言框上会写“datetime”,是吗?但显然不是,它说的是“文本”。jQuery如何以及为什么决定忽略我为该类型编写的内容?难道我不能为“type”属性编写任意类型,并看到它返回给我的消息吗?有jQuery认为某些类型应该是什么的列表吗
(顺便说一句,不要试图将其放入JSFIDLE或codepen中。出于某种原因,这两种语言都拒绝运行我的javascript。我不知道我是否不允许使用“prop”或不允许按id搜索,或者什么。)datetime类型的输入
浏览器将其替换为文本类型的输入。这就是为什么输入的type属性是“text”
解决方案是使用类型为datetime local
的输入
console.log(“类型a:+document.getElementById(“a”).type”);
log(“类型b:+document.getElementById(“b”).type”)代码>
它不是特定于jQuery的:日期时间输入的类型
属性是“text”
;使用attr
将返回属性中写入的内容,而不管输入的“真实”类型是什么。实际类型将反映在属性中,对于已弃用的datetime
类型和任何其他无效类型,它是text