真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

elementUI表單驗證踩坑問題怎么解決

本文小編為大家詳細(xì)介紹“elementUI表單驗證踩坑問題怎么解決”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“elementUI表單驗證踩坑問題怎么解決”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。

成都創(chuàng)新互聯(lián)專注于城廂網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供城廂營銷型網(wǎng)站建設(shè),城廂網(wǎng)站制作、城廂網(wǎng)頁設(shè)計、城廂網(wǎng)站官網(wǎng)定制、成都小程序開發(fā)服務(wù),打造城廂網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供城廂網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

我總結(jié)之后,有四個要注意:

1.在v-for的列表下,form表單的驗證該如何精確觸發(fā)
2.對list進(jìn)行增刪操作的時候,如何確保視圖正確更新
3.自定義驗證規(guī)則的時候,如何知道操作的數(shù)據(jù)在數(shù)據(jù)結(jié)構(gòu)中的準(zhǔn)確位置
4.對象深層的key驗證該如何觸發(fā)

這是要操作的列表:elementUI表單驗證踩坑問題怎么解決

           class="boxItem"
         v-for="(item, index) in formData.boxList"
         :key="item.guid"
       >
                     :label="keytolabel(subkey)"
             v-for="(subItem, subkey) in item"
             :key="subkey"
             :prop="`boxList.${index}.${subkey}`"
       
 

第一個問題的解決方案:

我們在遍歷form-item的時候,就需要prop屬性,根據(jù)官方文檔的說明,prop是表單域 model 字段,在使用 validate、resetFields 方法的情況下,該屬性是必填的。正是這個屬性,可以讓組件知道觸發(fā)的時機(jī)。其中的觸發(fā)邏輯沒有去深入研究。

  :prop="`boxList.${index}.${subkey}`"

在rules這里sybkey要和rules的key值對應(yīng)上才可以正常觸發(fā)

     rules: {
       screenlength: [{ validator: lengthhandler, trigger: "blur" }],
      }

如上述所示,根據(jù)list的數(shù)量進(jìn)行遍歷行數(shù),再根據(jù)item來遍歷列數(shù)。每一列都有不定數(shù)量的key值,那么在這里的我們需要給prop指定到準(zhǔn)確的位置,大概模式就是父key.行數(shù).列key,簡單地來說,就是要將這個值所在的數(shù)據(jù)結(jié)構(gòu)位置告訴element組件。

根據(jù)我的猜測,element表單組件觸發(fā)驗證的邏輯是監(jiān)聽這個值的變化,根據(jù)給定的觸發(fā)條件(change,input,blur,focus等等),符合觸發(fā)條件就去對比是否發(fā)生值的變化,然后根據(jù)驗證規(guī)則去做相應(yīng)的提示。

第二個問題的解決方案:

我們在遍歷form-item的時候,vue會要求必須有一個key,這樣可以正確更新視圖。那么這一個key最大的特點是要操持唯一。我的方案是給key值生成一個唯一id,或者new Date().getTime()生成一個時間戳,當(dāng)我們對列表進(jìn)行操作的時候,就會正確更新視圖了。

例如:當(dāng)我們觸發(fā)第一和第二的item驗證的時候

elementUI表單驗證踩坑問題怎么解決再去刪除第二個item,視圖就會在刪除之后,驗證提示會刪除

elementUI表單驗證踩坑問題怎么解決

如果不是唯一key,例如使用index做key值,那么這個key是不會變化的,刪除第二個item就會出現(xiàn)以下情況

elementUI表單驗證踩坑問題怎么解決

當(dāng)發(fā)生這種情況的時候,你應(yīng)該考慮的是vue的視圖更新規(guī)則

第三個問題的解決方案:

自定義驗證規(guī)則在官方文檔有詳細(xì)的說明,這一塊就不用細(xì)說了,但是里面的觸發(fā)邏輯需要根據(jù)情況來修改代碼。例如總數(shù)是根據(jù)前面的長和高相乘公式得出的,那么我們需要每次在長和高的值變化的時候,就需要去計算總數(shù),然后根據(jù)規(guī)則去進(jìn)行提示。

設(shè)置一個currentIndex,在長和高的輸入框組件上定義focus事件,每次觸發(fā)就說明輸入框在操作,這一行就被操作的一行數(shù)據(jù),那么在定義驗證的時候就知道是哪一行了

  // 在組件focus的時候,就說明想操作這個組件,提前將位置記錄,以便于數(shù)據(jù)驗證
   focus(data) {
     this.currentIndex = data.index;
   },

當(dāng)然,代碼還是要根據(jù)具體交互來編寫

第四個問題的解決方案:

很多時候,我們都只是對表層key進(jìn)行驗證,所以如果需要驗證對象的深層可以的時候,我們需要做特殊處理,和第一個問題的處理方式類似,但又不完全相同。

// 要驗證的數(shù)據(jù)結(jié)構(gòu):
   formData:{
       sendcard:{
       sendcardsource:""
       }
   }
   //prop:組件屬性
     
     
 
     
  //rules:規(guī)則設(shè)置
       rules: {
       // 發(fā)送卡
       "sendcard.sendcardsource": [commonRule],
       }

這里的特點就是需要在rules屬性定義一個驗證驗證規(guī)則,prop的值要跟rules的值對應(yīng)上才可以觸發(fā)。這里的特點是,對象和對象的可能會有相同的key,所以這樣做是可以在rules設(shè)置一個唯一的觸發(fā)key值。

讀到這里,這篇“elementUI表單驗證踩坑問題怎么解決”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


標(biāo)題名稱:elementUI表單驗證踩坑問題怎么解決
鏈接地址:http://weahome.cn/article/pscchd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部