在您回答之前,他们不支持输入日期",请阅读问题;)
我有这个(简化):
<input type="date" />
并且使用JS和/或jQuery我希望能够用它做一些事情,所以我寻找类似的东西:
var input = el.querySelector("input")[0]; // returns the input
var inputType = input.type; // returns "date" in Chrome, "text" in IE, FF
所以我试图比这更聪明,并做到了这一点:
var inputType = $("input")[0].attr("type");
但它仍会返回&#34;文字&#34; ..
任何可以强迫它返回日期的想法/黑客?我不希望使用类/ id选择器作为通用系统,我不一定能控制它们。
谢谢!
答案 0 :(得分:2)
这里有一些关于属性和属性的混淆。
首先,Firefox和IE不支持input
和type="date"
(在撰写本文时,IE11,Firefox 34)。检查支持table。默认情况下,浏览器会将未知输入类型视为text
。在这种情况下,DOM元素对象的属性也将是text
。这是您在此代码中观察到的内容:
var input = document.querySelector("input");
var inputType = input.type; // will give `text` in Firefox and IE
但是,即使浏览器不支持此输入类型,属性值仍为date
:
var input = document.querySelector("input");
var inputType = input.getAttribute("type"); // will give `date` everywhere
答案 1 :(得分:1)
答案 2 :(得分:0)
var inputType = $("input")[0].attr("type");
这段代码不起作用,因为$('input')[0]
返回DOM元素(未包装在jQuery中),如果你想为第一次输入检索jQuery元素,请尝试:
var inputType = $("input").eq(0).attr("type");
// or
var inputType = $("input:first").attr("type");
答案 3 :(得分:0)
@dsfq是正确的,FF或IE都不支持日期字段,并默认它们的行为类似于文本字段。但是,@ Kristoffer也是正确的,他们仍然报告为&#34; date&#34;浏览器的字段(使用JQuery 1.6.2一直回到IE7)。
var inputType = $("input").attr("type");
此代码返回HTML中第一个输入字段的类型,我假设它是type="text"
,因为这是JQuery可以返回的唯一方式& #34; text&#34;,给出您对ID感兴趣的输入并将其用作选择器,如下所示:
var inputType = $("#inputId").attr("type");
或将选择限制为仅选择日期输入:
var inputType = $("input[type=date]").attr("type");