欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解element-ui中form驗證雜記

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

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

也就對一些常用的el-form表單驗證和問題進行下梳理。

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

你可能很納悶,已經(jīng)為form表單傳入了rules了啊,在不全部刪除時,驗證規(guī)則都沒問題。這個問題是因為在html中使用了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: '角色名稱為必填項' }

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

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

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

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

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

如果每個表單都是相互獨立的話,我們沒必要同步的去驗證所有的表單。

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

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

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

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

對于明確知道要驗證的嵌套屬性,可以在rules對象定義時,使用字符串形式指定要驗證的屬性,同事在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)綁定的屬性,則需要進行動態(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'}]
},

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

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

相關(guān)文章

  • VUE屏幕整體滾動(滑動或滾輪)原生方法舉例

    VUE屏幕整體滾動(滑動或滾輪)原生方法舉例

    為了實現(xiàn)全屏滾動效果,我們首先需要使用Vue.js框架搭建項目,這篇文章主要給大家介紹了關(guān)于VUE屏幕整體滾動(滑動或滾輪)原生方法的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • Vue實現(xiàn)訂單支付倒計時功能

    Vue實現(xiàn)訂單支付倒計時功能

    這篇文章主要給大家介紹了Vue實現(xiàn)訂單支付倒計時功能,倒計時這要運用在創(chuàng)建訂單后15分鐘內(nèi)進行支付,否則訂單取消,本文結(jié)合示例代碼給大家詳細講解,需要的朋友可以參考下
    2023-08-08
  • vue實現(xiàn)列表的添加點擊

    vue實現(xiàn)列表的添加點擊

    這篇文章主要為大家詳細介紹了vue實現(xiàn)列表的添加點擊,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • elementUi vue el-radio 監(jiān)聽選中變化的實例代碼

    elementUi vue el-radio 監(jiān)聽選中變化的實例代碼

    這篇文章主要介紹了elementUi vue el-radio 監(jiān)聽選中變化,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-06-06
  • 你不知道的Vue技巧之--開發(fā)一個可以通過方法調(diào)用的組件(推薦)

    你不知道的Vue技巧之--開發(fā)一個可以通過方法調(diào)用的組件(推薦)

    這篇文章主要介紹了你不知道的Vue技巧之--開發(fā)一個可以通過方法調(diào)用的組件,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • vue3引入highlight.js進行代碼高亮的方法實例

    vue3引入highlight.js進行代碼高亮的方法實例

    最近忙著開發(fā)自己的開發(fā)腳手架,在做代碼生成器的時候,有個預(yù)覽功能,需要讓代碼高亮,下面這篇文章主要給大家介紹了關(guān)于vue3引入highlight.js進行代碼高亮的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • 詳解Vue.js 2.0 如何使用axios

    詳解Vue.js 2.0 如何使用axios

    本篇文章主要介紹了Vue.js 2.0 如何使用axios,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • vue+element自定義查詢組件

    vue+element自定義查詢組件

    這篇文章主要為大家詳細介紹了vue+element自定義查詢組件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Vue實現(xiàn)向PDF文件中添加二維碼

    Vue實現(xiàn)向PDF文件中添加二維碼

    這篇文章主要為大家詳細介紹了如何利用Vue實現(xiàn)向PDF文件中添加二維碼的功能,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2023-06-06
  • Vue3中props傳參方式詳解

    Vue3中props傳參方式詳解

    這篇文章主要為大家詳細介紹了Vue3中props傳參方式(多種數(shù)據(jù)類型傳參方式)的相關(guān)知識,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11

最新評論