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

使用mixins實現(xiàn)elementUI表單全局驗證的解決方法

 更新時間:2019年04月02日 12:00:16   作者:我在長安長安  
這篇文章主要介紹了使用mixins實現(xiàn)elementUI表單的全局驗證的解決方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下

使用ElementUi搭建框架的時候,大家應該都有考慮過怎么做全局驗證,畢竟復制粘貼什么的是最煩了,這里分享下個人的解決方法。

驗證規(guī)則
分析規(guī)則

一般驗證規(guī)則,主要是是否必填,不為空,以及參數(shù)類型的驗證。

基于這個條件,我們開始找找思路, 單個字段的驗證是這樣的:

name: {
 required: 是否必填,
 validator: 自定義規(guī)則,
 message: 失敗提示消息(非自定義時觸發(fā)),
 trigger: 觸發(fā)方式
}

循環(huán)實現(xiàn)

固定的規(guī)則。當一個東西固定之后,那必然是可以重復使用的,并且可以快速生成,我們可以用循環(huán)來實現(xiàn)它。

但是用循環(huán)來實現(xiàn),我們則需要一個數(shù)據(jù)規(guī)則。

定義數(shù)據(jù)規(guī)則

分析下需要的字段,大概就是以下幾種,其他的可以根據(jù)自身的需求去增加:

  • 驗證的字段名 label
  • 驗證的值 value
  • 驗證的類型 type
  • 是否必填 required
  • 自定義規(guī)則 rules

那最終我們得到的是這樣一個字段配置列表:

fieldList: [
   {label: '賬號', value: 'account', type: 'input', required: true},
   {label: '密碼', value: 'password', type: 'password', required: true},
   {label: '昵稱', value: 'name', type: 'input', required: true},
   {label: '性別', value: 'sex', type: 'select', list: 'sexList', required: true},
   {label: '頭像', value: 'avatar', type: 'input'},
   {label: '手機號碼', value: 'phone', type: 'input'},
   {label: '微信', value: 'wechat', type: 'input'},
   {label: 'QQ', value: 'qq', type: 'input'},
   {label: '郵箱', value: 'email', type: 'input'},
   {label: '狀態(tài)', value: 'status', type: 'select', list: 'statusList', required: true}
  ]

form完整的字段配置建議參考:

 // 表單相關
  formInfo: {
  ref: null,
  data: {
   id: '', // *唯一ID
   account: '', // *用戶賬號
   password: '', // *用戶密碼
   name: '', // *用戶昵稱
   type: 2, // *用戶類型: 0: 手機注冊 1: 論壇注冊 2: 管理平臺添加
   sex: 0, // *性別: 0:男 1:女
   avatar: '', // 頭像
   phone: '', // 手機號碼
   wechat: '', // 微信
   qq: '', // qq
   email: '', // 郵箱
   status: 1 // *狀態(tài): 0:停用,1:啟用(默認為1)',
   // create_user: '', // 創(chuàng)建人
   // create_time: '', // 創(chuàng)建時間
   // update_user: '', // 修改人
   // update_time: '' // 修改時間
  },
  fieldList: [
   {label: '賬號', value: 'account', type: 'input', required: true},
   {label: '密碼', value: 'password', type: 'password', required: true},
   {label: '昵稱', value: 'name', type: 'input', required: true},
   {label: '性別', value: 'sex', type: 'select', list: 'sexList', required: true},
   {label: '頭像', value: 'avatar', type: 'input'},
   {label: '手機號碼', value: 'phone', type: 'input'},
   {label: '微信', value: 'wechat', type: 'input'},
   {label: 'QQ', value: 'qq', type: 'input'},
   {label: '郵箱', value: 'email', type: 'input'},
   {label: '狀態(tài)', value: 'status', type: 'select', list: 'statusList', required: true}
  ],
  rules: {},
  labelWidth: '120px'
  }

實現(xiàn)驗證方法

  • 循環(huán)字段列表,根據(jù)type判斷是提示選擇不能為空,還是輸入不能為空
  • 如果字段必填,則根據(jù)是否有自定義驗證去生成驗證規(guī)則
  • 字段非必填,有自定義規(guī)則生成驗證
// 初始化驗證數(shù)據(jù)
 _initRules (formInfo) {
  const obj = {},
  fieldList = formInfo.fieldList
  // 循環(huán)字段列表
  for (let item of fieldList) {
  let type = item.type === 'select' ? '選擇' : '輸入'

  if (item.required) {
   if (item.rules) {
   obj[item.value] = {
    required: item.required,
    validator: item.rules,
    trigger: 'blur'
   }
   } else {
   obj[item.value] = {
    required: item.required,
    message: '請' + type + item.label,
    trigger: 'blur'
   }
   }
  } else if (item.rules) {
   obj[item.value] = {
   validator: item.rules,
   trigger: 'blur'
   }
  }
  }
  formInfo.rules = obj
 }

怎么配置到全局

  • 通過mixin配置,然后在頁面中使用(個人使用的是mixin)
  • 配置為全局方法在頁面中調用
  • 掛在到vue實例上,通過this即可訪問

最后

在項目的系統(tǒng)管理模塊中可以看到示例代碼:

項目地址

項目代碼地址

總結

以上所述是小編給大家介紹的使用mixins實現(xiàn)elementUI表單的全局驗證的解決方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關文章

  • 文本框只能輸入數(shù)字的實現(xiàn)方法(兼容IE火狐)

    文本框只能輸入數(shù)字的實現(xiàn)方法(兼容IE火狐)

    下面小編就為大家?guī)硪黄谋究蛑荒茌斎霐?shù)字的實現(xiàn)方法(兼容IE火狐)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • JavaScript從數(shù)組中刪除指定值元素的方法

    JavaScript從數(shù)組中刪除指定值元素的方法

    這篇文章主要介紹了JavaScript從數(shù)組中刪除指定值元素的方法,實例分析了兩種常用的javascript操作數(shù)組指定元素的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • js異或運算符^小技巧分享

    js異或運算符^小技巧分享

    這篇文章主要介紹了js異或運算符^小技巧,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • JS禁用頁面上所有控件的實現(xiàn)方法(附demo源碼下載)

    JS禁用頁面上所有控件的實現(xiàn)方法(附demo源碼下載)

    這篇文章主要介紹了JS禁用頁面上所有控件的方法,涉及JavaScript捕捉頁面元素的相關技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下
    2015-12-12
  • Layui表格行工具事件與數(shù)據(jù)回填方法

    Layui表格行工具事件與數(shù)據(jù)回填方法

    今天小編就為大家分享一篇Layui表格行工具事件與數(shù)據(jù)回填方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • html的DOM中document對象anchors集合用法實例

    html的DOM中document對象anchors集合用法實例

    這篇文章主要介紹了html的DOM中document對象anchors集合用法,實例分析了anchors集合的功能及使用技巧,需要的朋友可以參考下
    2015-01-01
  • 最新熱門腳本Autojs源碼分享

    最新熱門腳本Autojs源碼分享

    AutoJS 是基于一個標準字典庫的文本輸入自動完成 JavaScript 庫。Auto.js 是使用純 JS 實現(xiàn)的,沒有任務外部依賴,大小僅僅 6kb,本文給大家分享最新熱門腳本Autojs源碼,感興趣的朋友一起看看吧
    2021-05-05
  • JavaScript?ES6中class定義類實例方法

    JavaScript?ES6中class定義類實例方法

    ES6提供了更接近面向對象(注意:javascript本質上是基于對象的語言)語言的寫法,引入了Class(類)這個概念,作為對象的模板,下面這篇文章主要給大家介紹了關于JavaScript?ES6中class定義類的相關資料,需要的朋友可以參考下
    2022-07-07
  • console.log()與console.dir()的區(qū)別及說明

    console.log()與console.dir()的區(qū)別及說明

    這篇文章主要介紹了console.log()與console.dir()的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • JavaScript基礎教程之a(chǎn)lert彈出提示框實例

    JavaScript基礎教程之a(chǎn)lert彈出提示框實例

    這篇文章主要介紹了JavaScript基礎教程之a(chǎn)lert彈出提示框實例,本文重點在于講解了JavaScript基本語法、基本使用方法,需要的朋友可以參考下
    2014-10-10

最新評論