仅使用 type=number 无法避免出现负数和小数,使用text并用正则过滤按键按下时仍然会闪烁一下。 解决方法:使用@keydown监听按键,将不希望出现的字符直接过滤:
<input type="number" @keydown="filterNum($event)"
v-model="num" placeholder="请输入数字">
//用于防止输入负数和小数
const filterNum = (e: any)=>{
let prohibitInput = ["-", "."];
if (prohibitInput.includes(e.key)) {
e.preventDefault()
}
};