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

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

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

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

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

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

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

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

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

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

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

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

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

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

如果每個(gè)表單都是相互獨(dú)立的話(huà),我們沒(méi)必要同步的去驗(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}`)
 })
 // 如果沒(méi)有全部驗(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)

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

對(duì)于明確知道要驗(yàn)證的嵌套屬性,可以在rules對(duì)象定義時(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'}]
},

對(duì)于在循環(huán)之中動(dòng)態(tài)綁定的屬性,則需要進(jìn)行動(dòng)態(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ī)則。

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

相關(guān)文章

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

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

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

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

    這篇文章主要介紹了vue+iview 實(shí)現(xiàn)可編輯表格的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    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è)應(yīng)用,它包括主頁(yè)、營(yíng)銷(xiāo)頁(yè)面和應(yīng)用頁(yè)面,你不會(huì)想要為每一頁(yè)重復(fù)所有的工作,對(duì)吧,與Nuxt不同,Vue 3并沒(méi)有內(nèi)置的布局系統(tǒng),但是別擔(dān)心,這里將向你展示3種簡(jiǎn)單的方法來(lái)實(shí)現(xiàn)這一點(diǎn),需要的朋友可以參考下
    2023-08-08
  • 簡(jiǎn)述vue中的config配置

    簡(jiǎn)述vue中的config配置

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

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

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

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

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

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

    這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目中按鈕防抖處理實(shí)現(xiàn)的相關(guān)資料,在項(xiàng)目開(kāi)發(fā)中相必大家時(shí)常會(huì)遇到按鈕重復(fù)點(diǎn)擊后引起事件重復(fù)提交的問(wèn)題,需要的朋友可以參考下
    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無(wú)效問(wèn)題及解決

    vue3 Element-Plus el-backtop無(wú)效問(wèn)題及解決

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

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

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

最新評(píng)論

乐安县| 盐边县| 汕头市| 水城县| 宁蒗| 淳安县| 辉县市| 伊金霍洛旗| 高邮市| 永春县| 大余县| 许昌县| 长沙市| 翁牛特旗| 四川省| 武鸣县| 丰都县| 诏安县| 买车| 铅山县| 忻州市| 内黄县| 开封县| 莲花县| 北碚区| 深州市| 佛坪县| 巴林左旗| 奇台县| 康乐县| 广宁县| 汝南县| 井冈山市| 高要市| 鹤山市| 德州市| 滦平县| 章丘市| 阳信县| 绍兴市| 宽城|