如何获得实际输入类型:IE9中的数字?

时间:2017-07-12 01:28:25

标签: javascript html internet-explorer internet-explorer-9

我给了一个类型="数字"到一个INPUT标签,我知道IE9-不支持数字类型。我尝试使一些js代码可以兼容IE9-,所以我在IE11中测试(并将紧凑模式更改为IE9)。

但是,当我想获得输入的类型:数字时,它总是返回' text'。我试过这些方法:

首先,我的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它也会起作用!!为什么?!

下面的

是片段:

&#13;
&#13;
input[type="number"] {
    border: 1px solid #f00;
}
input[type="numberd"] {
    border: 1px solid #0f0;
}
&#13;
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'))" />
&#13;
&#13;
&#13;

最后,我的问题是,如何获得输入的实际类型:IE9中的数字 - ?有人可以帮帮我吗?

3 个答案:

答案 0 :(得分:0)

我想你不得不做我刚才做的同样的事情并在IE9模式下运行IE11。我知道IE9将未知类型视为文本,但我并不是100%确定它实际上会转换为&#34;添加元素时的类型。

我不会依赖于你想要的类型属性。相反,我会在您要验证的输入中添加一个类并检查它。您还可以添加自定义属性并进行检查。

答案 1 :(得分:0)

我认为这个问题是一个大问题,我无法自己找到解决方法,而且我的问题与其他问题不太相似。但我无法获得更多答案甚至是观点。

现在只有18次查看util(一半来自我)。我想我对stackoverflow没有任何疑问。再见,伙计们,谢谢你的帮助

答案 2 :(得分:0)

这对我有用,当我试图保持数字时

在 html body 部分:

<input onkeyup="if(this.value=='-'){}else{if(isNaN(this.value)){this.value='';}}"></input>

一旦它不是数字,它就会清除输入..