iview 數據校驗的坑

1. select 設置了multiple 多選,只選擇一個的時候,提示校驗不經過的信息,可是提交是能經過,選擇多個不會提示,按理選擇1個或者N個都沒問題啊。以下圖:

image.png

驗證規則:
{
 type: "array",
 required: true,
 message: "請選擇服務領域!",
 trigger: "change"
 }
問題緣由:

選擇的數據有延遲,沒有拿到第一個數據,因此數組的長度爲0,也就驗證不經過了數組

解決辦法:

自定義驗證規則,裏面經過setTimeout來實現等到拿到第一個數據時進行延遲驗證ui

const selRule = (rule, value, callback) => {
     setTimeout(() => {
         if (value.length === 0) {
            callback(new Error("請選擇服務領域."));
         } else {
            callback();
         }
     }, 0);
 };

2. 日期選擇了後,文本框後面出現加載圖標,以下圖

image.png
這個問題跟上個同樣,能夠自定義驗證規則,來實現,我本身出現這個問題,是由於忘記寫else了【必定記得要寫else{callback();}】this

修改後的驗證規則:spa

const validateTime \= (rule, value, callback) \=> {
     if (value !== "") {
         if (value < this.formData.startTime) {
            callback(new Error("截止時間不能早於開始時間!"));
         } else {
            callback();
         }
     } else {
        callback(new Error("請選擇截止日期."));
     }
 };
相關文章
相關標籤/搜索