存在问题:
字母e在数学上 代表2.71828,也是一个数字,因此也可以键入,与此同时,“+”、“-”、“.”等字符也可以键入,并且键入之后,输入框中获取的值是空值。
解决办法:
在输入框键入值之后,我们可以拿到一个event.keyCode,他是一个unicode值。
String.fromCharCode:可以将一个unicode码转换成对应的值
JavaScript String.fromCharCode() 函数详解_Houzhyan的博客-CSDN博客_string.fromcharcode
获取到输入的值,使用正则表达式进行过滤 /[\d]/:匹配一个数字字符
<input type="number" onkeypress="return(/[\d]/.test(String.fromCharCode(event.keyCode)))"/>
当其返回值为false时,就不会显示在输入框内,该办法可以有效的防止非数字的键入。