我给了一个类型="数字"到一个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
它也会起作用!!为什么?!
是片段:
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;
最后,我的问题是,如何获得输入的实际类型:IE9中的数字 - ?有人可以帮帮我吗?
答案 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>
一旦它不是数字,它就会清除输入..