先說說復現方式
本來input是只能輸入數字的,然后你不小心輸入了漢字,觸發校驗了,然后這時候,你發現校驗取消不掉了
就這樣了
咋辦啊,你一看校驗沒錯啊,各種number啥的也寫了,發現沒問題啊
<el-inputv-number-inputv-model.number="specification.goodsNum"placeholder="對應商品數量"maxlength="5"></el-input>goodsNum: [{required: true,message: "對應商品數量必填,限輸入5個字符",trigger: "blur",},
],
然后就絞盡腦汁想,哪出問題了呢,又是想失焦之后去掉校驗,又是啥啥的,都不好使
你猜怎么著
用最原始的方法
<el-inputv-model="specification.goodsNum"placeholder="對應商品數量"maxlength="5"></el-input>const validateNumber = (rule, value, callback) => {
if (!/^\d*\.?\d{0,2}$/.test(value)) {callback(new Error("請輸入數字,最多2位小數"));} else {callback();}
};goodsNum: [
{ validator: validateNumber, trigger: "blur" },{required: true,message: "對應商品數量必填,限輸入5個字符",trigger: "blur",},
],
對,就這樣寫,嘎嘎好使,再也不報錯了