最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解element-ui中form驗(yàn)證雜記

 更新時(shí)間:2019年03月04日 14:26:43   作者:Fiend  
這篇文章主要介紹了詳解element-ui中form驗(yàn)證雜記,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

最近接觸的商戶后臺項(xiàng)目居多,自然而然就涉及到了大量的表單驗(yàn)證,

也就對一些常用的el-form表單驗(yàn)證和問題進(jìn)行下梳理。

當(dāng)我們添加required驗(yàn)證后,輸入一些數(shù)據(jù)后再刪除完時(shí),會出現(xiàn)xxx is required,如下圖所示

你可能很納悶,已經(jīng)為form表單傳入了rules了啊,在不全部刪除時(shí),驗(yàn)證規(guī)則都沒問題。這個(gè)問題是因?yàn)樵趆tml中使用了required字段,而在rules的規(guī)則沒有設(shè)置required為true,

// html
<el-form-item label="角色名稱" required prop="roleName">
 <el-input v-model="params.roleName"></el-input>  
</el-form-item>

// js
{ trigger: 'blur', message: '角色名稱為必填項(xiàng)' }

這種情況下就會為輸入框添加一條默認(rèn)驗(yàn)證規(guī)則,就導(dǎo)致了上面圖片情況的發(fā)生。

為了解決這種情況,我們只需要把卸載html里的required去除,并把他移動到rules的規(guī)則之中即可。

// js
{ required: true, trigger: 'blur', message: '角色名稱為必填項(xiàng)' }
級聯(lián)提交表單驗(yàn)證

對于一些復(fù)雜的表單,我們經(jīng)常會遇到在提交前需要驗(yàn)證多個(gè)表單的情況。

由于element的最后validate方法是異步的。

如果每個(gè)表單都是相互獨(dú)立的話,我們沒必要同步的去驗(yàn)證所有的表單。

因此可以將每個(gè)獨(dú)立的表單封裝成Promise,再使用Promise.all進(jìn)行回調(diào)處理。

可以參考下面使用了async/await的vue代碼。

// 進(jìn)行異步表單驗(yàn)證
async validateData () {
 this.formValidatePromiseArr = []
 this.formList.map((form, index) => {
  this.validateEachForm(form, `form${index}`)
 })
 // 如果沒有全部驗(yàn)證成功,則進(jìn)入捕獲的錯(cuò)誤處理
 try {
  await Promise.all(this.formValidatePromiseArr)
  console.log('finish')
  this.next()
 } catch (error) {
  console.log(error)
 }
},
// 校驗(yàn)每個(gè)獨(dú)立表單數(shù)據(jù)
validateEachForm (form, name) {
 let formResult = new Promise((resolve, reject) => {
  // 利用ref取到要驗(yàn)證的表單
  this.$refs[name][0].validate((valid) => {
   if (valid) {
    resolve()
   } else {
    console.log(`${name}的數(shù)據(jù)不完整`)
    reject()
   }
  })
 })
 this.formValidatePromiseArr.push(formResult)
}
嵌套屬性校驗(yàn)

對于復(fù)雜表單,我們難免需要進(jìn)行更深層級的驗(yàn)證。

對于明確知道要驗(yàn)證的嵌套屬性,可以在rules對象定義時(shí),使用字符串形式指定要驗(yàn)證的屬性,同事在prop綁定相應(yīng)值。

// html
<el-form-item label="年齡信息" prop="info.age">
 <el-input v-model="form.info.age"></el-input>  
</el-form-item>

// js
rules: {
 name: [{required: true, trigger: 'blur', message: 'required'}],
 'info.age': [{required: true, trigger: 'blur', message: 'required'}]
},

對于在循環(huán)之中動態(tài)綁定的屬性,則需要進(jìn)行動態(tài)的prop綁定(必須是字符串形式的屬性取值),再綁定指定的rules,例如

// html
<div v-for="info in form.infoList">
 <el-form-item label="年齡信息" :prop="`infoList[${index}].age`" :rules="rules.age">
  <el-input v-model="info.age"></el-input>  
 </el-form-item>
</div>

// js
rules: {
 age: [{required: true, trigger: 'blur', message: 'required'}]
},

這樣就能順利的綁定上我們需要的驗(yàn)證規(guī)則。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot+Vue開發(fā)之Login校驗(yàn)規(guī)則、實(shí)現(xiàn)登錄和重置事件

    SpringBoot+Vue開發(fā)之Login校驗(yàn)規(guī)則、實(shí)現(xiàn)登錄和重置事件

    這篇文章主要介紹了SpringBoot+Vue開發(fā)之Login校驗(yàn)規(guī)則、實(shí)現(xiàn)登錄和重置事件,本文通過圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • vue+iview 實(shí)現(xiàn)可編輯表格的示例代碼

    vue+iview 實(shí)現(xiàn)可編輯表格的示例代碼

    這篇文章主要介紹了vue+iview 實(shí)現(xiàn)可編輯表格的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-10-10
  • 使用Vue3創(chuàng)建多布局系統(tǒng)的三種方法

    使用Vue3創(chuàng)建多布局系統(tǒng)的三種方法

    布局是中大型網(wǎng)站或應(yīng)用的基礎(chǔ),假設(shè)你正在創(chuàng)建一個(gè)網(wǎng)頁應(yīng)用,它包括主頁、營銷頁面和應(yīng)用頁面,你不會想要為每一頁重復(fù)所有的工作,對吧,與Nuxt不同,Vue 3并沒有內(nèi)置的布局系統(tǒng),但是別擔(dān)心,這里將向你展示3種簡單的方法來實(shí)現(xiàn)這一點(diǎn),需要的朋友可以參考下
    2023-08-08
  • 簡述vue中的config配置

    簡述vue中的config配置

    這篇文章主要介紹了vue中的config配置 ,本文給大家介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • vue中常見的問題及解決方法總結(jié)(推薦)

    vue中常見的問題及解決方法總結(jié)(推薦)

    這篇文章主要給大家介紹了關(guān)于vue中常見的問題及解決方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • vue_drf實(shí)現(xiàn)短信驗(yàn)證碼

    vue_drf實(shí)現(xiàn)短信驗(yàn)證碼

    我們在做網(wǎng)站開發(fā)時(shí),登錄頁面很多情況下是可以用手機(jī)號接收短信驗(yàn)證碼,本文主要介紹了vue_drf實(shí)現(xiàn)短信驗(yàn)證碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • vue項(xiàng)目中按鈕防抖處理實(shí)現(xiàn)過程

    vue項(xiàng)目中按鈕防抖處理實(shí)現(xiàn)過程

    這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目中按鈕防抖處理實(shí)現(xiàn)的相關(guān)資料,在項(xiàng)目開發(fā)中相必大家時(shí)常會遇到按鈕重復(fù)點(diǎn)擊后引起事件重復(fù)提交的問題,需要的朋友可以參考下
    2023-08-08
  • vue實(shí)例的選項(xiàng)總結(jié)

    vue實(shí)例的選項(xiàng)總結(jié)

    這篇文章主要介紹了Vue實(shí)例的選項(xiàng)有哪些,文中講解非常細(xì)致,代碼幫助大家更好的學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • vue3 Element-Plus el-backtop無效問題及解決

    vue3 Element-Plus el-backtop無效問題及解決

    這篇文章主要介紹了vue3 Element-Plus el-backtop無效問題及解決,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • vue微信分享 vue實(shí)現(xiàn)當(dāng)前頁面分享其他頁面

    vue微信分享 vue實(shí)現(xiàn)當(dāng)前頁面分享其他頁面

    這篇文章主要為大家詳細(xì)介紹了vue微信分享功能,vue實(shí)現(xiàn)當(dāng)前頁面分享其他頁面,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12

最新評論

福建省| 武强县| 鹰潭市| 乌兰浩特市| 新蔡县| 马关县| 潼关县| 西昌市| 鹤峰县| 开化县| 乌拉特后旗| 汉源县| 淳安县| 丁青县| 伊春市| 栾城县| 丹棱县| 永济市| 合肥市| 郎溪县| 岑巩县| 江华| 中卫市| 内江市| 天津市| 石门县| 咸阳市| 扎赉特旗| 长葛市| 佛坪县| 新竹县| 浮梁县| 义乌市| 斗六市| 吉安市| 会东县| 商丘市| 互助| 抚松县| 渭南市| 荆州市|