經過排查,如果自定義驗證中,每種情況都要寫明確和有回調函數callback
var validatePhone = (rule, value, callback) => { const reg = /^(0|86|17951)?(13[0-9]|15[012356789]|166|17[3678]|18[0-9]|14[57])[0-9]{8}$/; if (value!== "") { if (value === "") { callback(new Error("請輸入手機號")); } else if(value.length==11&®.test(value)){ callback(); } else { callback(new Error("請輸入正確的手機號")); } } else { callback(new Error("請輸入手機號")); } };
上面是自定義驗證,寫在data里面。如果驗證通過,但是沒有加上callback(),則validate里面的代碼會一直不執行。
小結:用於判斷值的情況用value比較好,
value的值為相對於的表單元素的v-model的值
rule是驗證規則,
callback是回調函數,每個判斷結束,語句后面要callback(。。)結果給validate,不然validate會一直等待返回的回掉,不往下執行代碼。