【发布时间】:2017-12-16 05:48:37
【问题描述】:
我已经为 INPUT 标签指定了 type="number",并且我知道 IE9- 不支持数字类型。我尝试将一些 js 代码压缩到 IE9-,所以我在 IE11 中进行测试(并将压缩模式更改为 IE9)。
但是,当我想获取输入的类型:数字时,它总是返回“文本”。我尝试了这些方法:
首先,我的html是:
<input name="field11" type="number" min="1" max="99">
然后,我尝试获取类型,理论上应该是number:
- input.type; // text
- input.getAttribute('type'); // text
- input.getAttributeNode('type').value; //text
css 也不起作用:
input[type="number"] {
border: 1px solid #f00;
}
多么奇怪!
但是,如果我将类型更改为绝对不受支持的类型,例如numberd:
<input name="field11" type="numberd" min="1" max="99" >
以上所有代码都将正常工作并显示numberd!!即使我将 css 更改为 numberd 它也可以!为什么?!
下面是sn-p:
input[type="number"] {
border: 1px solid #f00;
}
input[type="numberd"] {
border: 1px solid #0f0;
}
type="numberd" should be green border:
<input id="input1" type="numberd" min="1" max="99" onclick="alert(this.getAttribute('type'))" />
<br>
type="number", should be red border
<input id="input2" type="number" min="1" max="99" onclick="alert(this.getAttribute('type'))" />
最后,我的问题是,如何在 IE9- 中获取 input:number 的实际类型?有人可以帮我吗?
【问题讨论】:
-
@user8180795 — 这不是重复的。这个问题是关于在显示 text 而不是 number 的相关元素上使用
<input type="number">但node.getAttribute('type')进行标记。 -
getAttribute 应该显示属性的实际值,因此您的假设似乎是合适的。 IE 让你知道假设是多么危险。 ;-)
-
@user8180795 完全没有,我的问题与你的无关。
标签: javascript html internet-explorer internet-explorer-9