<input type="number"/>
在自测项目的时候无意中发现只能输入数字的输入框居然可以输入e。
这是由于 e 在数学上代表 2.71828,因此它也是一个数字,所以允许输入。
<input type="number" placeholder="请输入" onKeypress="return (/[\d\.]/.test(String.fromCharCode(event.keyCode)))"/>
写上这段代码就可以了,但是!!!!!
当在用中文输入法输入e然后按shift的时候e还是会在!!!
用以下这个,就可以避免刚才的尴尬问题了
<input type="number" oninput="value=value.replace(/[^\d]/g,'')" />
其实处理的方式都是一样的,利用了正则表达式限制只能输入数字
但是实现的方式,一个是onKeypress一个是oninput就导致了会有问题出现。
onKeypress:在用户敲击按钮时触发。
oninput :当元素获得用户输入时运行的脚本。
看这俩事件的区别就知道为什么会出现这种情况了。