亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

element多個(gè)表單校驗(yàn)的實(shí)現(xiàn)

 更新時(shí)間:2021年05月27日 17:05:52   作者:小白踩坑  
在項(xiàng)目中,經(jīng)常會(huì)遇到表單檢驗(yàn),在這里我分享在實(shí)際項(xiàng)目中遇到多個(gè)表單同時(shí)進(jìn)行校驗(yàn)以及我的解決方法,感興趣的可以了解一下

在項(xiàng)目中,經(jīng)常會(huì)遇到表單檢驗(yàn),單個(gè)表單檢驗(yàn)可查看element的官網(wǎng)文檔,里面有詳細(xì)的介紹。在這里我分享在實(shí)際項(xiàng)目中遇到多個(gè)表單同時(shí)進(jìn)行校驗(yàn)以及我的解決方法,歡迎大家留言,一起探討相關(guān)技術(shù),請多多指教。

這里主要用到 Promise 來解決。

關(guān)于Promise方法舉個(gè)例子來抽象理解:

周末想吃火鍋,打電話告訴小A,過來我這打火鍋,菜都齊了,就差點(diǎn)海鮮,你來的時(shí)候帶點(diǎn)。接著打電話找朋友小B,過來我這打火鍋,有海鮮,肉少了點(diǎn),你來的時(shí)候帶點(diǎn)。在接著打電話找朋友小C:過來我這打火鍋,啥菜都有了,差點(diǎn)酒,你來的時(shí)候整幾瓶。還差一包火鍋底料,拿手機(jī)打電話,小D啊,來打活個(gè),咋幾個(gè)都在,我這電爐不太行了,啥都準(zhǔn)備好了,你把電爐帶過來,順便帶包底料。

吃火鍋這個(gè)事就成了,美滋滋。

但這個(gè)事吧。總不會(huì)一直順利,總有人來不了對吧,來不了這火鍋就吃不成了。

其實(shí)多個(gè)表單驗(yàn)證,就和這差不多,每個(gè)表單都詢問一遍,如果大家都通過了,美滋滋,假如其中一個(gè)驗(yàn)證失敗,那對不起,還得告訴用戶,填對了再說。

通過Promise,對每個(gè)表單執(zhí)行詢問檢測,無論結(jié)果如果,先進(jìn)入Promise.all中,等待所有表單詢問完畢,如果大家就可以,就觸發(fā)then,美滋滋。反之,catch中執(zhí)行失敗響應(yīng)就ok了。
 

     const formName = ['tableForm1', 'tableForm2', 'tableForm3']
      const validates = (item) => {
        return new Promise((resolve, reject) => {
          if (!this.$refs[item]) {
            resolve()
            return false
          }
          this.$refs[item].validate((valid) => {
            if (valid) {
              resolve()
            } else {
              reject(new Error('驗(yàn)證不對'))
            }
          })
        })
      }
      Promise.all(formName.map(item => validates(item))).then(() => {
        console.log('成功')
      }).catch(() => {
        console.log('失敗')
      })
    }
  }

最后,在這里貼上完整代碼:

  <div class="home">
    <el-form :model="tableForm1" ref="tableForm1" :rules="rules1" label-width="100px" >
      <el-form-item label="價(jià)格" prop="price">
        <el-input v-model.number="tableForm1.price" autocomplete="off"></el-input>
      </el-form-item>
    </el-form>

    <el-form :model="tableForm2" ref="tableForm2" :rules="rules2" label-width="100px" >
      <el-form-item label="年齡" prop="age">
        <el-input v-model.number="tableForm2.age" autocomplete="off"></el-input>
      </el-form-item>
    </el-form>

    <el-form :model="tableForm3" ref="tableForm3" :rules="rules3" label-width="100px" >
      <el-form-item label="姓名" prop="name">
        <el-input v-model.number="tableForm3.name" autocomplete="off"></el-input>
      </el-form-item>
    </el-form>

    <el-button type="primary" @click="submitForm">提交</el-button>
    <el-button @click="resetForm">重置</el-button>
    
  </div>
</template>

<script>
export default {
  name: 'Home',
  data () {
    return {
      tableForm1: {
        price: ''
      },
      tableForm2: {
        age: ''
      },
      tableForm3: {
        name: ''
      },
      rules1: {
        price: [{ required: true, message: '價(jià)格不能為空', trigger: 'blur' }]
      },
      rules2: {
        age: [{ required: true, message: '年齡不能為空', trigger: 'blur' }]
      },
      rules3: {
        name: [{ required: true, message: '姓名不能為空', trigger: 'blur' }]
      }
    }
  },
  methods: {
    resetForm () {
      this.$refs.tableForm1.resetFields()
      this.$refs.tableForm2.resetFields()
      this.$refs.tableForm3.resetFields()
    },
    submitForm () {
      const formName = ['tableForm1', 'tableForm2', 'tableForm3']
      const validates = (item) => {
        return new Promise((resolve, reject) => {
          if (!this.$refs[item]) {
            resolve()
            return false
          }
          this.$refs[item].validate((valid) => {
            if (valid) {
              resolve()
            } else {
              reject(new Error('驗(yàn)證不對'))
            }
          })
        })
      }
      Promise.all(formName.map(item => validates(item))).then(() => {
        console.log('成功')
      }).catch(() => {
        console.log('失敗')
      })
    }
  }
}
</script>

到此這篇關(guān)于element多個(gè)表單校驗(yàn)的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)element 表單校驗(yàn)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • 在nuxt中使用路由重定向的實(shí)例

    在nuxt中使用路由重定向的實(shí)例

    這篇文章主要介紹了在nuxt中使用路由重定向的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • 解決vue3傳屬性時(shí)報(bào)錯(cuò)[Vue?warn]:Component?is?missing?template?or?render?function

    解決vue3傳屬性時(shí)報(bào)錯(cuò)[Vue?warn]:Component?is?missing?template?or

    這篇文章主要給大家介紹了關(guān)于解決vue3傳屬性時(shí)報(bào)錯(cuò)[Vue?warn]:Component?is?missing?template?or?render?function的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • VUE側(cè)邊導(dǎo)航欄實(shí)現(xiàn)篩選過濾的示例代碼

    VUE側(cè)邊導(dǎo)航欄實(shí)現(xiàn)篩選過濾的示例代碼

    本文主要介紹了VUE側(cè)邊導(dǎo)航欄實(shí)現(xiàn)篩選過濾的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • ant design Vue 純前端實(shí)現(xiàn)分頁問題

    ant design Vue 純前端實(shí)現(xiàn)分頁問題

    這篇文章主要介紹了ant design Vue 純前端實(shí)現(xiàn)分頁問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • vue實(shí)現(xiàn)下拉加載其實(shí)沒那么復(fù)雜

    vue實(shí)現(xiàn)下拉加載其實(shí)沒那么復(fù)雜

    這篇文章主要給大家介紹了關(guān)于vue實(shí)現(xiàn)下拉加載的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用vue具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Vue?vant-ui框架實(shí)現(xiàn)上拉加載下拉刷新功能

    Vue?vant-ui框架實(shí)現(xiàn)上拉加載下拉刷新功能

    功能需求——獲取后端接口返回的數(shù)據(jù),實(shí)現(xiàn)列表數(shù)據(jù)上滑加載更多下一頁數(shù)據(jù),下拉數(shù)據(jù)刷新功能,結(jié)合vant-ui框架實(shí)現(xiàn)。可直接參考使用
    2022-09-09
  • Vue3實(shí)現(xiàn)SSE(Server-Sent?Events)連接

    Vue3實(shí)現(xiàn)SSE(Server-Sent?Events)連接

    SSE?是一種允許服務(wù)器向?yàn)g覽器推送事件的技術(shù),這篇文章主要為大家詳細(xì)介紹了如何通過vue3實(shí)現(xiàn)SSE(Server-Sent?Events)連接,有需要的小伙伴可以了解下
    2024-10-10
  • 編寫v-for循環(huán)的技巧匯總

    編寫v-for循環(huán)的技巧匯總

    這篇文章主要介紹了編寫更好的v-for循環(huán)的6種技巧,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下
    2020-12-12
  • vue內(nèi)置指令詳解

    vue內(nèi)置指令詳解

    指令是Vue模板中最常用的一項(xiàng)功能,它帶有前綴v-,主要職責(zé)是當(dāng)其表達(dá)式的值改變時(shí),相應(yīng)的將某些行為應(yīng)用在 DOM 上。這篇文章主要介紹了vue內(nèi)置指令詳解,需要的朋友可以參考下
    2018-04-04
  • Element Steps步驟條的使用方法

    Element Steps步驟條的使用方法

    這篇文章主要介紹了Element Steps步驟條的使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07

最新評論