今天在查看表单实例的时候,发现了一个只能输入数字的input,却可以输入e字母
<Input type="number" v-model.number="form.number" placeholder="请输入"/>
原因是e在数学上代表无理数,e是自然对数的底数,是一个无限不循环小数,其值是2.71828…,所以在输入e时,输入框认为是数字。
为了避免这个bug,我们可以是用下面的方法
onKeypress="return (/[\d\.]/.test(String.fromCharCode(event.keyCode)))
1
2
将上面的input改为下面这样:
<Input type="number" v-model.number="number" placeholder="请输入"
onKeypress="return (/[\d\.]/.test(String.fromCharCode(event.keyCode)))"/>
1
2
3
fromCharCode(numX,numX,…,numX) 可接受一个或多个指定的 Unicode 值,然后返回一个字符串,
String.fromCharCode(72,69,76,76,79) --> HELLO