element-ui的表單驗證this.$refs[formName].validate的代碼不執行


經過排查,如果自定義驗證中,每種情況都要寫明確和有回調函數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&&reg.test(value)){
                   callback();
                } else {
                    callback(new Error("請輸入正確的手機號"));
                }
            } else {
                callback(new Error("請輸入手機號"));
            }
        };

上面是自定義驗證,寫在data里面。如果驗證通過,但是沒有加上callback(),則validate里面的代碼會一直不執行。

小結:用於判斷值的情況用value比較好,

value的值為相對於的表單元素的v-model的值

rule是驗證規則,

callback是回調函數,每個判斷結束,語句后面要callback(。。)結果給validate,不然validate會一直等待返回的回掉,不往下執行代碼。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM