看了别的博主写的,他们用的 οninput="value=value.replace(/[^\d]/g,'')",但是这样写的话,有一个bug,我先输入汉字,在输入数字,校验不过去!!!
<el-input style="width: 350px;" v-model="form.num" oninput="value=value.replace(/[^\d]/g,'')" placeholder="请输入采购数量" clearable/>
我就打印form,发现num是null,只要第一次输入汉字或者小数点,不管输入什么都是form里面num都是null。
换了一个办法:
isNum(rule, value, callback) {
const num = /^\d+$/;
if (!num.test(value)) {
callback(new Error('采购数量只能为正整数'));
} else {
callback();
}
},