input数字输入框可以输入e的原因

今天在查看表单实例的时候,发现了一个只能输入数字的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)))

将上面的input改为下面这样:

<Input type="number" v-model.number="number" placeholder="请输入"
       onKeypress="return (/[\d\.]/.test(String.fromCharCode(event.keyCode)))"/>

fromCharCode(numX,numX,…,numX) 可接受一个或多个指定的 Unicode 值,然后返回一个字符串,

String.fromCharCode(72,69,76,76,79) -->  HELLO

猜你喜欢

转载自blog.csdn.net/gqzydh/article/details/89839066
今日推荐